/* /quiz: Head-to-Head Quiz (public/quiz-page.js). Sits on daily.css: same tokens, banner, stage, chips and answers.
   While a question is on screen the page is only the two halves: the top one is turned to face the second player. */
.qz{--a:#ffb23c;--b:#3f6fd6;--pad:22px}
.qz h1{font-family:"Bungee","Plus Jakarta Sans",sans-serif;font-weight:400;font-size:clamp(2rem,1.3rem + 4.4vw,3.2rem);line-height:1}
.qz .banner{padding-top:56px}
.qz .banner p{color:var(--text);margin-top:8px;max-width:30em;text-shadow:0 1px 12px rgba(0,0,0,.8)}
.qz a.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.qz .chip.on{border-color:var(--a);background:rgba(255,178,60,.14)}
.qz .packs{grid-template-columns:1fr 1fr 1fr}
.qz .how{margin-top:14px}
.qz .pickq{margin-top:24px}
.qz .names{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.qz .names label{display:grid;gap:6px;font-weight:800;font-size:.9rem;color:var(--muted)}
.qz .names input{appearance:none;font:inherit;font-weight:800;font-size:1.05rem;color:var(--text);background:var(--panel-2);border:2px solid var(--line);border-radius:14px;padding:14px 14px;min-height:52px;width:100%}
.qz .names input:focus-visible{outline:none;border-color:var(--a)}
.qz .final{display:flex;justify-content:space-between;gap:16px;font-weight:800;font-size:clamp(1.5rem,1rem + 3vw,2.2rem);line-height:1.1}
.qz .final b{color:var(--a);font-size:1.5em;vertical-align:-.08em;margin:0 .15em}
.qz .verdict-line{margin-top:16px;font-weight:800;font-size:1.25rem;line-height:1.3;text-wrap:balance}
.qz .next{margin-top:34px}
.qz .next h2{font-size:1.5rem;line-height:1.15;font-weight:800;letter-spacing:-.01em;text-wrap:balance;color:var(--text)}
.qz .next>p{color:var(--muted);margin-top:8px}
.qz .lead{margin-top:18px;border-radius:24px;padding:24px var(--pad);background:linear-gradient(135deg,rgba(63,111,214,.42),rgba(255,178,60,.16));border:1px solid var(--b)}
.qz .lead p{color:var(--text);margin-top:8px}
.qz .lead .small{color:var(--muted);font-size:.9rem;margin-top:12px}
.qz .offers{display:grid;gap:14px;margin-top:14px}
@media (min-width:600px){.qz .offers{grid-template-columns:1fr 1fr}}
.qz .offer{border-radius:20px;padding:20px;background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column}
.qz .offer .kind{font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:.75rem;color:var(--a)}
.qz .offer h3{font-size:1.25rem;line-height:1.2;margin-top:6px;color:var(--text)}
.qz .offer .price{font-weight:800;font-size:2rem;line-height:1;margin-top:10px;color:var(--text)}
.qz .offer .price small{font:500 .9375rem "Plus Jakarta Sans",sans-serif;color:var(--muted)}
.qz .offer p{color:var(--muted);font-size:.9375rem;margin-top:10px;flex:1}
.qz .offer .btn{margin-top:16px;width:100%}
.qz .offer .more{display:block;margin-top:12px;font-size:.9375rem;text-align:center}
.qz .err{margin-top:10px;color:#ffb199;font-size:.9375rem}
.qz .next>.small{margin-top:16px;color:var(--muted);font-size:.875rem}

/* ---- a question: the page becomes the board ---- */
body.qz-playing .top,body.qz-playing .foot{display:none}
body.qz-playing .wrap{max-width:560px;padding:0}
.duel{--a:#ffb23c;--b:#3f6fd6;display:grid;grid-template-rows:1fr auto 1fr;height:100dvh;min-height:560px;background:var(--frame)}
.duel.solo{grid-template-rows:auto auto 1fr}
.duel.solo .side{justify-content:flex-start;padding-top:28px;gap:14px}
.duel .side{display:flex;flex-direction:column;justify-content:center;gap:10px;padding:14px 16px calc(14px + env(safe-area-inset-bottom));min-height:0;transition:opacity .2s}
.duel .side.p1{transform:rotate(180deg);background:linear-gradient(180deg,rgba(63,111,214,.16),transparent)}
.duel .side.p0{background:linear-gradient(0deg,rgba(255,178,60,.12),transparent)}
.duel .who,.duel .them{display:flex;align-items:center;gap:12px;font-size:1.05rem}
.duel .who b,.duel .them b{font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:.95rem}
.duel .pts{display:inline-grid;place-items:center;min-width:44px;height:44px;border-radius:14px;background:var(--panel-2);border:2px solid var(--line);font-weight:800;font-size:1.4rem;color:var(--a)}
.duel .p1 .pts,.duel .them .pts{color:#8fb0ff}
.duel .won .pts{border-color:#2fa39a;animation:rise .4s var(--ease) both}
.duel .ask{font-weight:800;font-size:clamp(1.15rem,.9rem + 1.6vw,1.5rem);line-height:1.2;text-wrap:balance}
.duel .pz{font-weight:800;font-size:clamp(2.4rem,1.6rem + 5vw,3.6rem);line-height:1.1;letter-spacing:.06em;color:var(--a)}
.duel .pz.s{font-size:clamp(1.3rem,1rem + 2.2vw,1.9rem);letter-spacing:.02em}
.duel .opts{margin-top:4px}
.duel .opt{cursor:pointer;text-align:center;min-height:56px;font-size:1.1rem;transition:transform .12s var(--ease),border-color .12s}
.duel .opt:not([disabled]):active{transform:scale(.97)}
.duel .opt:focus-visible{outline:none;border-color:var(--a)}
.duel .opt[disabled]{cursor:default}
.duel .side.out{opacity:.55}
.duel .say{min-height:1.4em;font-weight:800;color:var(--muted)}
.duel .won .say{color:#5fd0c6}
.duel .them{padding:calc(14px + env(safe-area-inset-top)) 16px 12px;background:linear-gradient(180deg,rgba(63,111,214,.16),transparent)}
.duel .them .say{font-weight:500}
.duel .clock{height:8px;background:var(--panel-2)}
.duel .clock i{display:block;height:100%;background:linear-gradient(90deg,var(--a),var(--b));transform-origin:left;will-change:transform}
@media (max-height:640px){.duel .opt{min-height:48px;padding:10px 12px}.duel .side{gap:6px;padding-top:8px;padding-bottom:8px}}
