.historical-portrait{margin:0 auto 1.2rem;text-align:center;width:min(100%,460px)}
.historical-portrait img{display:block;width:100%;height:clamp(220px,34vh,400px);object-fit:contain;border-radius:12px;background:#171b23}
.portrait-media{position:relative;border-radius:12px;background:#171b23}
.portrait-status{position:absolute;inset:0;display:grid;place-content:center;margin:0;padding:1rem;color:#cbd5e1;line-height:1.5}
.portrait-status[hidden]{display:none}.portrait-status.portrait-error{color:#eeb962}
.historical-portrait figcaption{margin:.6rem 0;font-size:.9rem;color:var(--muted,#94a3b8)}
.historical-review-image{display:block;width:140px;height:150px;object-fit:contain;margin:.75rem 0}
.marathon-progress{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem;border:1px solid #c69c5066;border-radius:12px;margin-bottom:1rem}
.marathon-progress strong{display:block;font-size:1.15rem}.marathon-progress p{margin:.4rem 0}
.marathon-progress .btn.boost-active{background:#be8930;color:#10141a}
.marathon-stage-result{padding:1rem;border-bottom:1px solid #8895aa44}.marathon-stage-result summary{cursor:pointer;font-weight:700}
.marathon-answer{padding:.6rem 0;border-top:1px solid #8895aa33}
.historical-admin-row{display:flex;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid #8895aa33}.historical-admin-row img{width:70px;height:80px;object-fit:contain}.historical-admin-row>div{flex:1;min-width:0}.historical-admin-row p{overflow-wrap:anywhere}
.historical-admin-preview{width:160px;height:170px;object-fit:contain}.portrait-error{color:#eeb962}
.spectator-screen .historical-portrait img{height:220px}.spectator-screen .historical-portrait{margin-bottom:.5rem}
@media(max-width:500px){.historical-admin-row{flex-wrap:wrap}.marathon-progress{padding:.75rem}.historical-portrait img{height:260px}}

.marathon-history{flex-basis:100%;border-top:1px solid #c69c5044;padding-top:.75rem}
.marathon-history p,.marathon-history a{font-size:.9rem;line-height:1.5}
.marathon-progress>div{min-width:0;overflow-wrap:anywhere}
.marathon-progress .btn{white-space:normal;min-height:44px}
.historical-portrait figcaption{overflow-wrap:anywhere;line-height:1.5}
.watch-board .historical-portrait{max-width:100%}
/* Portraits need their own row: the original five-row quiz viewport clips them. */
.spectator-grid:has(>.is-historical){grid-auto-rows:800px}
.spectator-grid>.spectator-player-screen.is-historical{height:800px;max-height:800px;grid-template-rows:58px 24px 250px 64px minmax(160px,1fr) 48px}
.is-historical>.historical-portrait{grid-row:3;margin:0 auto;width:min(100%,460px)}
.is-historical>.spectator-screen-head{grid-row:1}
.is-historical>.spectator-question-meta{grid-row:2}
.is-historical>.spectator-question{grid-row:4}
.is-historical>.spectator-answers{grid-row:5}
.is-historical>.spectator-feedback{grid-row:6}
.spectator-grid>.spectator-player-screen.is-historical.is-review{grid-template-rows:58px minmax(0,1fr)}
.is-historical.is-review>.historical-portrait{display:none}
.is-historical.is-review>.spectator-review{grid-row:2}
.observer-page .watch-board.panel:has(.is-historical),.observer-page #watch-selected .watch-board:has(.is-historical){height:auto;min-height:0;max-height:none;grid-template-rows:auto auto auto auto 56px}
.observer-page .watch-board .watch-player-screen.spectator-grid:has(>.is-historical){grid-auto-rows:820px}
.observer-page .watch-board .spectator-grid>.spectator-player-screen.is-historical:not(.is-review){grid-template-rows:96px 32px 250px 64px minmax(180px,1fr) 54px}
.observer-page .is-historical>.historical-portrait figcaption{margin:6px 0;font-size:13px;line-height:1.4}
@media(max-width:749px){.observer-page .watch-board .watch-player-screen.spectator-grid.has-opponents:has(>.is-historical){grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){.challenges-page .mode-card strong,.challenges-page .mode-card[data-mode=matching] strong{font-size:21px;line-height:1.2;white-space:normal;letter-spacing:0}}
@media(max-width:360px){.challenges-page .mode-picker:has([data-mode=matching]){grid-template-columns:1fr}}
