/* couplequizgame.com — off-white + red theme, matched to the MurderMysteryTime house style. */
:root{
  --accent:#b71c1c; --accent-light:#e53935; --accent-dark:#7f0000; --flame:#e8261c;
  --accent-bg:rgba(183,28,28,.06); --accent-bg2:rgba(183,28,28,.12);
  --ink:#1a1a1a; --gray-900:#2d2d2d; --gray-700:#555; --gray-600:#6b6b6b;
  --gray-500:#888; --gray-300:#ccc; --gray-100:#efe9e1; --gray-50:#faf8f5;
  --paper:#faf8f5; --white:#fff; --green:#2e7d32;
  --elev-1:0 1px 3px rgba(0,0,0,.07); --elev-2:0 4px 12px rgba(0,0,0,.09);
  --radius:8px; --radius-lg:16px; --speed:.25s ease;
  --serif:'Merriweather',Georgia,serif;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{overflow-x:hidden;scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.7;
  overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--gray-100)}
::-webkit-scrollbar-thumb{background:var(--accent);border-radius:3px}

h1,h2,h3{font-family:var(--serif);color:var(--ink);line-height:1.2}
h1{font-size:clamp(2rem,4.6vw,3.4rem);font-weight:900;letter-spacing:-.01em;margin:0 0 .6rem}
h2{font-size:clamp(1.4rem,3vw,2.1rem);font-weight:800;margin:2.6rem 0 .8rem}
h3{font-size:clamp(1.05rem,2vw,1.35rem);font-weight:700;margin:1.6rem 0 .5rem}
p{color:var(--gray-700)}
p.lead{font-size:1.1rem;color:var(--gray-600);margin:0 0 1.8rem}
.muted{color:var(--gray-600)}

.wrap{max-width:1240px;margin:0 auto;padding:0 16px}
@media(min-width:760px){.wrap{padding:0 40px}}
@media(min-width:1200px){.wrap{padding:0 56px}}
.narrow{max-width:720px;margin:0 auto}

header.site{background:rgba(250,248,245,.95);backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--gray-100);
  position:sticky;top:0;z-index:100}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;
  gap:12px;min-height:68px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.logo{font-family:var(--serif);font-weight:800;font-size:1.2rem;color:var(--flame)}
.logo:hover{text-decoration:none}
.logo .wordmark{color:var(--flame)}
.logo .wordmark>span{color:var(--accent-dark)}
nav.site{display:flex;gap:18px;flex-wrap:wrap}
nav.site a{color:var(--gray-600);font-size:.86rem;font-weight:600}
nav.site a:hover{color:var(--accent);text-decoration:none}

.hero{text-align:center;padding:4rem 0 .5rem}
.hero h1{margin:0 auto .9rem;max-width:19ch}
.hero p.lead{margin:0 auto 2rem;max-width:58ch}
.hero em{color:var(--accent);font-style:italic}
@media(max-width:700px){.hero{padding:2.2rem 0 .2rem;text-align:left}
  .hero h1,.hero p.lead{max-width:none}}

.btn{display:block;width:100%;text-align:center;background:var(--accent);color:var(--white);
  border:0;padding:15px 30px;border-radius:var(--radius);font-family:var(--sans);
  font-weight:700;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase;
  cursor:pointer;transition:var(--speed);box-shadow:0 4px 15px rgba(183,28,28,.25)}
.btn:hover{background:var(--accent-dark);color:#fff;text-decoration:none;box-shadow:0 6px 20px rgba(183,28,28,.33)}
.btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}
.btn.ghost{background:transparent;color:var(--ink);border:2px solid var(--gray-300);box-shadow:none}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:transparent}

.card{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);
  padding:1.6rem;box-shadow:var(--elev-1)}
.decks{display:grid;gap:1rem;margin:1.8rem 0}
@media(min-width:620px){.decks{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.decks{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1240px){.decks{grid-template-columns:repeat(4,1fr)}}
.deck{display:block;background:var(--white);border:1px solid var(--gray-100);
  border-radius:var(--radius-lg);padding:1.4rem;color:var(--ink);
  box-shadow:var(--elev-1);transition:var(--speed)}
.deck:hover{border-color:var(--accent);box-shadow:var(--elev-2);transform:translateY(-2px);text-decoration:none}
.deck .e{font-size:1.7rem}
.deck strong{display:block;font-family:var(--serif);margin:.5rem 0 .3rem;font-size:1.05rem}
.deck small{color:var(--gray-600);font-size:.88rem;line-height:1.6;display:block}

.steps{display:grid;gap:1rem;margin:1.4rem 0}
@media(min-width:820px){.steps{grid-template-columns:repeat(3,1fr)}}
.step{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);
  padding:1.4rem;box-shadow:var(--elev-1)}
.step b{display:block;color:var(--accent);font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;margin-bottom:.5rem}
.step p{margin:0;font-size:.95rem}

footer.site{border-top:1px solid var(--gray-100);margin-top:4rem;padding:2rem 0;
  background:var(--white);color:var(--gray-600);font-size:.88rem}
footer.site a{color:var(--gray-600)}
footer.site p{margin-bottom:.4rem;font-size:.88rem}

/* ---------- game ---------- */
#game{min-height:50vh}
.hide{display:none!important}
.bar{height:5px;background:var(--gray-100);border-radius:99px;overflow:hidden;margin:1.2rem 0 .4rem}
.bar i{display:block;height:100%;background:var(--accent);transition:width .25s}
.qmeta{font-size:.74rem;color:var(--gray-500);letter-spacing:.09em;text-transform:uppercase;font-weight:600}
.q{font-family:var(--serif);font-size:clamp(1.25rem,3.4vw,1.7rem);font-weight:800;
  margin:.6rem 0 1.4rem;line-height:1.3}
.opts{display:grid;gap:.6rem}
.opt{background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius);
  padding:15px 18px;color:var(--ink);font-size:1rem;font-family:var(--sans);
  text-align:left;cursor:pointer;line-height:1.5;transition:var(--speed)}
.opt:hover{border-color:var(--accent)}
.opt.sel{border-color:var(--accent);background:var(--accent-bg);font-weight:600;
  box-shadow:inset 0 0 0 1px var(--accent)}
.scale{display:flex;gap:.5rem}
.scale button{flex:1;aspect-ratio:1;background:var(--white);border:1px solid var(--gray-300);
  border-radius:var(--radius);color:var(--ink);font-size:1.05rem;font-weight:700;
  font-family:var(--sans);cursor:pointer;transition:var(--speed)}
.scale button:hover{border-color:var(--accent)}
.scale button.sel{border-color:var(--accent);background:var(--accent-bg2);
  box-shadow:inset 0 0 0 1px var(--accent)}
.scale-ends{display:flex;justify-content:space-between;gap:1rem;font-size:.75rem;
  color:var(--gray-500);margin-top:.5rem}
.nav{display:flex;gap:.6rem;margin-top:1.6rem}
.nav .btn{width:auto;flex:1}
.linkbox{display:flex;gap:.5rem;margin:1rem 0}
.linkbox input{flex:1;min-width:0;background:var(--gray-50);border:1px solid var(--gray-300);
  border-radius:var(--radius);color:var(--ink);padding:13px;font-size:.88rem;font-family:var(--sans)}
.linkbox .btn{width:auto;padding:13px 18px;white-space:nowrap}

.score{text-align:center;padding:.4rem 0}
.score .n{font-family:var(--serif);font-size:clamp(3.4rem,11vw,4.6rem);font-weight:900;
  line-height:1;color:var(--accent)}
.score .d{color:var(--gray-600);font-size:.95rem;margin-top:.5rem}
.score .verdict{font-family:var(--serif);font-size:1.15rem;font-weight:700;margin-top:1rem;color:var(--ink)}
.rev{border-top:1px solid var(--gray-100);padding:1rem 0}
.rev .rq{font-weight:700;margin-bottom:.4rem;line-height:1.45}
.rev .ra{font-size:.9rem;color:var(--gray-600);line-height:1.7}
.rev .ra b{color:var(--ink);font-weight:600}
.tick{color:var(--green);font-weight:800}
.cross{color:var(--accent);font-weight:800}

.cta{background:var(--accent-bg);border:1px solid rgba(183,28,28,.28);
  border-radius:var(--radius-lg);padding:2rem 1.5rem;margin:2.4rem 0;text-align:center}
.cta h3{margin:0 0 .5rem}
.cta p{margin:0 auto 1.3rem;max-width:52ch}

.faqgrid{display:grid;gap:1.4rem}
@media(min-width:820px){.faqgrid{grid-template-columns:1fr 1fr;column-gap:3rem}}
.faq dt{font-weight:700;margin-top:1.1rem;color:var(--ink)}
.faq dt:first-child{margin-top:0}
.faq dd{margin:.3rem 0 0;color:var(--gray-600)}
ol.muted li{margin-bottom:.5rem}

/* ---------- setup form ---------- */
.field{margin:1.1rem 0}
.field label{display:block;font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;
  font-weight:700;color:var(--gray-500);margin-bottom:.45rem}
.field input[type=text],.field input:not([type]){width:100%}
.field input{width:100%;background:var(--gray-50);border:1px solid var(--gray-300);
  border-radius:var(--radius);padding:13px 14px;font-size:1rem;font-family:var(--sans);color:var(--ink)}
.field input:focus{outline:none;border-color:var(--accent)}
.rangerow{display:flex;align-items:center;gap:1rem}
.rangerow input[type=range]{flex:1;accent-color:var(--accent);height:4px}
.rangerow output{font-family:var(--serif);font-weight:800;font-size:1.3rem;
  color:var(--accent);min-width:2.4ch;text-align:right}
.modes{display:grid;gap:.6rem}
@media(min-width:520px){.modes{grid-template-columns:1fr 1fr}}
.modebtn{background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius);
  padding:14px;text-align:left;font-family:var(--sans);cursor:pointer;transition:var(--speed)}
.modebtn:hover{border-color:var(--accent)}
.modebtn.sel{border-color:var(--accent);background:var(--accent-bg);box-shadow:inset 0 0 0 1px var(--accent)}
.modebtn b{display:block;font-size:.95rem;color:var(--ink);margin-bottom:.15rem}
.modebtn span{display:block;font-size:.82rem;color:var(--gray-600);line-height:1.45}

/* ---------- long-form SEO block ---------- */
.seo{background:var(--white);border-top:1px solid var(--gray-100);margin-top:3rem;padding:3rem 0}
.seo .inner{max-width:860px;margin:0 auto}
.seo h2{margin-top:2rem}
.seo h2:first-child{margin-top:0}
.seo p{margin-bottom:1.1rem;line-height:1.85}
.seo ul{margin:0 0 1.2rem 1.2rem;color:var(--gray-700);line-height:1.9}
.seo li{margin-bottom:.35rem}
.pill{display:inline-block;background:var(--accent-bg);border:1px solid rgba(183,28,28,.2);
  color:var(--accent);border-radius:999px;padding:5px 13px;font-size:.8rem;font-weight:600;
  margin:0 .35rem .5rem 0}
.pill:hover{background:var(--accent);color:#fff;text-decoration:none}

/* ---------- stop the layout moving between questions ---------- */
#game{min-height:560px}
.q{min-height:2.6em}
.answers{min-height:268px}
@media(max-width:520px){.answers{min-height:300px}}
.opt{min-height:56px;display:flex;align-items:center}
/* hover must not move anything the user is about to click */
.deck:hover{transform:none}
.btn,.opt,.modebtn,.scale button{transition:background-color var(--speed),border-color var(--speed),color var(--speed),box-shadow var(--speed)}
.btn:hover{box-shadow:0 4px 15px rgba(183,28,28,.25)}
.scale button{display:flex;align-items:center;justify-content:center}

.qlist{margin:1rem 0 0 1.2rem;color:var(--gray-700);line-height:1.85}
.qlist li{margin-bottom:.45rem;padding-left:.2rem}

footer.site .topics{margin-bottom:1.6rem;padding-bottom:1.4rem;border-bottom:1px solid var(--gray-100)}
footer.site .topics h2{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;
  font-family:var(--sans);font-weight:700;color:var(--gray-500);margin:0 0 .8rem}

.logo{display:inline-flex;align-items:center;gap:10px}
.logomark{width:36px;height:36px;border-radius:8px;display:block;flex:0 0 auto}
.logo .wordmark{line-height:1}

.logo .lockup{height:auto;max-width:210px;display:block}
@media(max-width:420px){.logo .lockup{max-width:170px}}
