/* Full-screen council moment */
.overlay:has(.event-card){padding:0;background:#070b0af2}
.event-card{position:relative;width:100%;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:40px 24px;background:radial-gradient(ellipse at 50% 42%,#3a2f1d 0%,#18201c 46%,#070b0a 100%);animation:event-card-in .45s ease-out both}
.event-card.discovery{background:radial-gradient(ellipse at 50% 42%,#40291f 0%,#1b1a17 46%,#070b0a 100%)}
.event-card-mark{width:108px;height:108px;display:grid;place-items:center;border:1px solid #b89a63;border-radius:50%;color:var(--gold);background:#11181580;box-shadow:0 0 60px #d2b47b30;animation:event-card-toll 1.9s ease-in-out both}
.event-card-mark svg{width:58px;height:58px;stroke-width:1.2}.event-card-mark .monk-badge{width:64px;height:70px}
.event-card h2{margin:6px 0 0;font:600 clamp(34px,7vw,64px)/1.05 var(--serif);color:#f1e3c2;letter-spacing:.02em;text-wrap:balance}
.event-card p{margin:0;max-width:34ch;font:italic 18px/1.5 var(--serif);color:#d8cdb2}
.event-card small{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#b3aa8e}
.event-card .quiet-button{margin-top:18px;background:none;border:1px solid #6d6a52;color:#d6ceb3;padding:10px 18px;font-size:12px;min-height:44px}
@keyframes event-card-in{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}
@keyframes event-card-toll{0%{transform:rotate(0)}12%{transform:rotate(-9deg)}26%{transform:rotate(7deg)}40%{transform:rotate(-4deg)}54%{transform:rotate(2deg)}70%,100%{transform:rotate(0)}}

/* End-of-night recap */
.recap-dialog{width:min(720px,100%)}
.recap-section{margin:18px 0 0;border-top:1px solid #46513d;padding-top:12px}
.recap-section summary{cursor:pointer;font:600 17px var(--serif);color:#ecdfbe;padding:4px 0 8px;list-style-position:inside}
.recap-roster{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.recap-person{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #3d4636;min-width:0}
.recap-person .monk-badge{height:32px;width:28px;flex:none}
.recap-person span{min-width:0;flex:1}.recap-person strong{display:block;font-size:12px;color:#e8e0c9}.recap-person strong small{color:var(--muted);font-weight:normal}
.recap-person span>small{display:block;font-size:10px;line-height:1.45;color:#b7bca6;margin-top:2px}
.recap-person em{font-style:normal;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#a9c29a;border:1px solid #56674b;padding:3px 6px;flex:none}
.recap-person.is-heretic em{color:#efb59c;border-color:#8a5a49;background:#3a221c}
.recap-timeline{list-style:none;margin:6px 0 0;padding:0}
.recap-timeline>li{display:grid;grid-template-columns:44px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid #353d31}
.recap-timeline time{font-size:11px;color:var(--gold);padding-top:2px}
.recap-timeline p{margin:0;font-size:12px;line-height:1.55;color:#c7ccb6}
.recap-timeline .recap-loss p{color:#e2b7a4}.recap-timeline .recap-good p{color:#b9d3a9}
.recap-council strong{display:flex;align-items:center;gap:6px;font-size:12px;color:#ecdfbe;margin-bottom:3px}.recap-council strong svg{width:15px;height:15px}
.recap-verdict{color:#ecdfbe!important}
.recap-votes{list-style:none;margin:5px 0 0;padding:0;font-size:11px;color:#aeb49f;line-height:1.6}.recap-votes b{color:#d8d0b6;font-weight:600}
.recap-actions{position:sticky;bottom:-38px;margin:20px -43px -38px;padding:14px 43px 20px;background:linear-gradient(#222a2600,#222a26 22%)}
@media(max-width:800px){.recap-roster{grid-template-columns:1fr}.recap-actions{bottom:-29px;margin:18px -24px -29px;padding:12px 24px 16px}}

/* Phone HUD: opaque disabled buttons hide the world behind them; the hint stays clear of Report */
.touch-layout .actions .action-button:disabled{opacity:1;background:#18231e;border-color:#56614d;color:#98a08e}
@media (orientation: portrait){.touch-layout .world-hint{right:112px}}

/* Music volume */
.music-control{display:grid;grid-template-columns:auto 1fr 3.2em;align-items:center;gap:12px;margin:16px 0 4px;font-size:12px;color:#d5d6c2}
.music-control input{margin:0;min-height:44px;padding:0;border:0;background:none;accent-color:var(--gold)}
.music-control output{font-size:11px;color:var(--muted);text-align:right}

/* Honours of the night, above the roster. */
.recap-honours{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px}
.recap-honours li{display:flex;align-items:center;gap:10px;padding:9px 11px;background:#2a3129;border:1px solid #5b5840}
.recap-honours .monk-badge{height:34px;width:29px;flex:none}
.recap-honours span{font-size:12px;line-height:1.5;color:#cfd3bf}
.recap-honours strong{display:block;font:600 11px var(--serif);letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);margin-bottom:1px}
/* Held sideways, the end screen trims its margins so the result and honours show above the buttons. */
@media(max-height:500px) and (min-width:600px){.overlay:has(.recap-dialog){padding:8px}.recap-dialog{max-height:calc(100dvh - 16px);padding:14px 24px}.recap-dialog .crest{display:none}.recap-dialog h2{font-size:26px}.recap-dialog .lead{font-size:15px;margin:4px 0 8px}.recap-actions{bottom:-14px;margin:10px -24px -14px;padding:10px 24px 10px}.recap-actions button{min-height:40px}}
