/* みんなで大喜利 — 寄席の紫と座布団の朱 */
:root { --accent: #7a3a91; --accent-soft: #f1e4f6; --zb: #c7643a; --zb2: #7a3a91; --gold: #d9a53a; --fan: #fff6e2; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --accent: #d7a2ec; --accent-soft: #34203f; --zb: #e08a5f; --zb2: #b678cc; --gold: #f0c96a; --fan: #3a3022; }
}
:root[data-theme="dark"] { --accent: #d7a2ec; --accent-soft: #34203f; --zb: #e08a5f; --zb2: #b678cc; --gold: #f0c96a; --fan: #3a3022; }

.oo-hero { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; }
.oo-art svg { display: block; width: 140px; height: auto; }
@media (max-width: 420px) { .oo-hero { grid-template-columns: 1fr; } .oo-hero .oo-art { justify-self: center; } }
.oo-zb-body { fill: var(--zb); }
.oo-zb:nth-child(even) .oo-zb-body { fill: var(--zb2); }
.oo-zb-tuft { fill: var(--gold); }
.oo-zb { animation: oo-drop .5s cubic-bezier(.2, 1.4, .4, 1) both; }
@keyframes oo-drop { from { transform: translateY(-40px); opacity: 0; } to { transform: none; opacity: 1; } }
.oo-fan-paper { fill: var(--fan); stroke: var(--gold); stroke-width: 2; }
.oo-fan-rib { stroke: var(--gold); stroke-width: 1.5; fill: none; }
.oo-fan { transform-box: fill-box; }

.oo-odai { border: 2px solid var(--accent); }
.oo-q { font-size: 22px; font-weight: 900; line-height: 1.5; margin: 6px 0 4px; font-family: var(--font-serif); }
.oo-q-big { font-size: 24px; text-align: center; padding: 14px 8px; background: var(--accent-soft); border-radius: var(--radius); }
.oo-ans { display: flex; gap: 12px; align-items: center; }
.oo-ans-n { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-2); color: var(--text-sub); font-size: 14px; }
.oo-ans.is-on { border-color: var(--accent); background: var(--accent-soft); }
.oo-ans.is-on .oo-ans-n { background: var(--accent); color: var(--accent-ink); }
.oo-memo { width: 100%; margin-top: 8px; padding: 10px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--text); font: inherit; resize: vertical; }
.oo-memo-box summary { cursor: pointer; font-weight: 700; }

.oo-res .oo-art-res svg { margin: 0 auto; width: 120px; }
.oo-pick { font-size: 20px; font-weight: 900; margin: 0 0 4px; }
.oo-res .mn-big small { font-size: 26px; }
.oo-match { font-size: 18px; margin: 4px 0; }
.oo-match b { color: var(--accent); font-size: 26px; }
.oo-line { font-size: 14px; background: var(--surface-2); border-radius: 10px; padding: 8px 10px; margin: 10px 0 0; }
.oo-check { display: block; font-size: 14px; padding: 10px 12px; border: 1px dashed var(--line); border-radius: 12px; cursor: pointer; }
.oo-bars { display: grid; gap: 10px; }
.oo-bar-head { display: flex; gap: 8px; align-items: baseline; font-size: 14px; }
.oo-bar-rank { flex: none; width: 2.6em; }
.oo-bar-v { flex: none; font-variant-numeric: tabular-nums; color: var(--text-sub); }
.oo-bar-track { height: 8px; background: var(--surface-2); border-radius: 99px; overflow: hidden; margin-top: 3px; }
.oo-bar-track i { display: block; height: 100%; background: var(--text-sub); opacity: .5; }
.oo-bar.is-mine .oo-bar-head { color: var(--accent); font-weight: 700; }
.oo-bar.is-mine .oo-bar-track i { background: var(--accent); opacity: 1; }
.oo-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.oo-hall { display: grid; gap: 10px; }
.oo-hall-q { font-weight: 700; }
.oo-hall-top { margin: 6px 0; }
