:root{--bg:#f9f7f4;--ink:#352d26;--muted:#807469;--accent:#8b5e3c;--line:#e4ddd4;--green:#436d53;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-family:var(--sans);color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit}header,footer{max-width:1400px;margin:auto;padding:28px 5%;display:flex;justify-content:space-between;align-items:center;gap:20px}header{border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-family:Georgia,serif;font-size:27px}.brand i{font-weight:normal;color:var(--accent)}.brand span{display:block;font:9px var(--sans);letter-spacing:3px;margin-top:9px}#connection{font-size:12px;color:var(--green)}#connection.offline{color:#a14b36}main{max-width:1280px;margin:0 auto;padding:48px 5%;min-height:75vh}footer{font-size:11px;color:var(--muted);border-top:1px solid var(--line)}h1,h2,p{margin-top:0}h1,h2{font-family:Georgia,serif;font-weight:normal}h1{font-size:clamp(38px,5.4vw,72px);line-height:1.1;letter-spacing:-1.5px;margin-bottom:24px}h2{font-size:clamp(26px,3vw,43px);line-height:1.3}.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:22px}.muted,.intro{color:var(--muted);line-height:1.65}.intro{font-size:17px;max-width:470px}.join{max-width:460px;margin:20px auto}.ornament{font:48px Georgia,serif;color:var(--accent);margin-bottom:24px}.panel{background:#fffdf9;border:1px solid var(--line);border-radius:20px;padding:28px}.join form{display:grid;gap:18px;margin-top:32px}label{display:grid;gap:9px;font-size:13px}input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:16px;color:var(--ink);font-size:17px}button.primary,.secondary{border-radius:9px;padding:15px 23px;min-height:48px;font-size:14px;text-decoration:none;display:inline-block;text-align:center}button.primary{background:var(--accent);color:white;border:1px solid var(--accent)}button.primary:disabled{opacity:.5}.secondary{background:transparent;color:var(--accent);border:1px solid var(--line)}:focus-visible{outline:3px solid #bd8c4f;outline-offset:4px}.lobby{display:grid;grid-template-columns:1.4fr 1fr;gap:64px;align-items:center}.qr-panel{text-align:center}.qr-panel img{width:100%;max-width:270px;display:block;margin:10px auto}.code{font-size:38px;letter-spacing:9px;font-weight:500;margin:14px 0}.join-url{font-size:13px;overflow-wrap:anywhere}.chips{display:flex;flex-wrap:wrap;gap:9px;margin:24px 0;max-height:220px;overflow:auto}.chip{padding:9px 14px;border:1px solid var(--line);border-radius:30px;background:#fffdf9;font-size:13px}.controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:28px}.question-head{display:flex;gap:25px;align-items:flex-start;justify-content:space-between}.question-head h2{max-width:930px;margin-bottom:24px}.timer{flex-shrink:0;width:70px;height:70px;border:2px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:26px;font-variant-numeric:tabular-nums}.timer.urgent{color:#a14b36;border-color:#a14b36}.progress{height:3px;background:var(--line);margin-bottom:30px;border-radius:4px;overflow:hidden}.progress span{display:block;height:100%;background:var(--accent);width:100%;transition:width .15s linear}.answers{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.answer{text-align:left;padding:0;overflow:hidden;border:2px solid transparent;background:#fffdf9;border-radius:15px;color:var(--ink);box-shadow:0 3px 20px #352d2606;position:relative}.answer img{display:block;width:100%;aspect-ratio:1.12;object-fit:cover;background:var(--line)}.answer .caption{display:flex;gap:12px;align-items:center;padding:18px 14px;font-size:16px}.letter{display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;height:27px;width:27px;flex-shrink:0;font-size:11px}.answer.selected{border-color:var(--accent)}.answer.correct{border-color:var(--green);background:#edf3ed}.answer.wrong{border-color:#b36e57}.answer .count{display:block;padding:0 16px 16px;font-size:13px;color:var(--muted)}.status{margin-top:24px;line-height:1.6;min-height:26px}.result-note{color:var(--green);font-weight:500}.question-meta{display:flex;justify-content:space-between;gap:20px;margin-top:20px;font-size:13px;color:var(--muted)}.scoreboard{max-width:800px;margin:0 auto}.scoreboard>h1,.scoreboard>.eyebrow,.scoreboard>.intro{text-align:center;margin-left:auto;margin-right:auto}.ranking{list-style:none;padding:0;margin:30px 0}.ranking li{display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:17px 12px}.ranking li.me{background:#eee5d9;border-radius:8px}.rank{width:30px;color:var(--accent);font-size:20px}.player-name{flex:1;overflow-wrap:anywhere}.points{font-weight:600;white-space:nowrap}.points small{font-weight:normal;color:var(--muted)}.podium{display:flex;align-items:flex-end;justify-content:center;gap:14px;margin:36px 0}.podium>div{flex:1;max-width:210px;background:#eee5d9;border-radius:15px 15px 0 0;padding:25px 12px;text-align:center;min-height:145px;overflow-wrap:anywhere}.podium>div:first-child{background:#ddc7ab;min-height:190px}.podium b{display:block;font:40px Georgia,serif;margin-bottom:12px}.podium span{display:block;margin-top:10px;font-size:13px}.waiting{text-align:center;max-width:620px;margin:35px auto}.waiting .intro{margin-left:auto;margin-right:auto}.waiting .chip{display:inline-block}.loading{text-align:center;color:var(--muted)}#error{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90%;width:max-content;background:#6d342a;color:white;padding:16px 24px;border-radius:12px;box-shadow:0 4px 30px #0002;z-index:5}.screen .answers img{aspect-ratio:1.4}.screen main{max-width:1500px}.credits li{margin:25px 0;line-height:1.7}.reset{margin-left:auto;font-size:12px}.empty{padding:24px;color:var(--muted)}@media(max-width:700px){header{padding:20px 6%}.brand{font-size:23px}#connection{font-size:10px}main{padding:30px 6%}.lobby{grid-template-columns:1fr;gap:24px}.lobby h1{font-size:42px}.answers{grid-template-columns:repeat(2,1fr);gap:12px}.answer img{aspect-ratio:1.45}.answer .caption{padding:12px 8px;gap:7px;font-size:14px}.letter{width:23px;height:23px}.question-head{gap:12px}.question-head h2{font-size:24px}.timer{width:48px;height:48px;font-size:21px}.eyebrow{font-size:10px;margin-bottom:15px}.intro{font-size:15px}.join{margin:0 auto}.panel{padding:23px}.code{font-size:32px}.question-meta{font-size:11px}.podium{gap:8px}.podium>div{padding:20px 7px;font-size:13px}.controls{gap:9px}.controls button{flex-grow:1}footer{font-size:10px}.reset{margin-left:0}}@media(prefers-reduced-motion:reduce){*{transition:none!important;transform:none!important}} 

/* Text answers keep the title and its explanation in one large tap target. */
.text-answers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.text-answers .answer { border-color: var(--line); padding: 10px; }
.text-answers .caption { font-size: 20px; font-weight: 500; }
.answer .description { display: block; padding: 0 14px 18px; font-size: 16px; line-height: 1.6; color: var(--muted); }
.text-answers .answer.selected { border-color: var(--accent); }
.text-answers .answer.correct { border-color: var(--green); }
.text-answers .answer.wrong { border-color: #b36e57; }
@media (max-width: 700px) {
  .text-answers { grid-template-columns: 1fr; }
  .text-answers .caption { font-size: 17px; }
  .answer .description { padding: 0 8px 12px; font-size: 14px; }
}

.answer { align-self: stretch; }
.answer img { object-position: center 25%; }
.answers:has(.description) .answer img { aspect-ratio: 460 / 215; object-fit: contain; background: #171715; }
@media (max-width: 700px) {
  .answers:has(.description) { grid-template-columns: 1fr; }
  .answers:has(.description) .answer { display: grid; grid-template-columns: 110px 1fr; align-content: start; }
  .answers:has(.description) .answer img { grid-row: span 3; height: 100%; min-height: 125px; aspect-ratio: auto; object-fit: contain; }
  .answers:has(.description) .caption { padding-bottom: 6px; }
}

/* A reveal gives the story and its photograph the main space on the screen. */
.answer-reveal .timer, .answer-reveal .progress,
.answer-reveal .answers .answer img, .answer-reveal .answers .description { display: none; }
.answer-reveal .answers .answer { display: block; }
.answer-reveal .answers { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.explanation-panel { margin-top: 20px; padding: 26px; border: 1px solid var(--line); border-radius: 18px; background: #fffdf9; }
.explanation-panel.with-image { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px; align-items: center; }
.explanation-panel figure { margin: 0; min-width: 0; }
.explanation-panel img { display: block; width: 100%; max-height: 350px; object-fit: contain; border-radius: 10px; }
.explanation-panel figcaption { margin-top: 9px; font-size: 11px; color: var(--muted); }
.explanation-panel h3 { margin: 0 0 16px; font: normal 32px/1.15 Georgia,serif; }
.explanation-panel p:not(.eyebrow) { line-height: 1.65; margin-bottom: 14px; }
.explanation-source { font-size: 12px; color: var(--accent); }
@media (max-width: 700px) {
  .answer-reveal .answers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .explanation-panel { padding: 20px; }
  .explanation-panel.with-image { grid-template-columns: 1fr; gap: 22px; }
  .explanation-panel h3 { font-size: 27px; }
}
.screen:has(.answer-reveal) main { padding-top: 26px; padding-bottom: 24px; }
.screen .answer-reveal .question-head h2 { font-size: clamp(26px, 2.2vw, 34px); line-height: 1.25; margin-bottom: 16px; }
.screen .answer-reveal .status { margin-top: 12px; }
.screen .explanation-panel { margin-top: 12px; padding: 22px; }
.screen .explanation-panel img { max-height: min(300px, 32vh); }

/* Two-person round uses two consistent portrait crops from the invitation photo. */
.answers.two-answers { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; margin-inline: auto; }
.answer-image { display: contents; }
.portrait { display: block; position: relative; overflow: hidden; aspect-ratio: 4 / 5; }
.answers .portrait img { position: absolute; width: 466.33%; max-width: none; height: auto; aspect-ratio: auto; left: -200%; top: -128%; }
.answers .portrait-ania img { left: -263.33%; top: -154.67%; }
.answer-reveal .portrait { display: none; }
.question-context { color: var(--muted); font-size: 17px; line-height: 1.5; margin: 12px 0 0; }
@media(max-width:700px) { .question-context { font-size: 14px; } }

/* Reserve feedback space so confirming an answer cannot move the page. */
.player .status { min-height: 3.2em; }

.language-picker { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; padding:18px 5% 0; }
.language-picker button { min-height:44px; padding:10px 16px; border:1px solid var(--line); border-radius:24px; background:transparent; color:var(--ink); }
.language-picker button[aria-pressed="true"] { background:var(--accent); color:white; border-color:var(--accent); }
