/* Rituals and quiet motion: all effects acknowledge commands, never hidden success. */
.cast-groups{display:grid;gap:13px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);flex:1}.cast-group>span{font-size:.72rem;letter-spacing:.15em;color:var(--gold)}.cast-group.wolf>span{color:var(--red)}.cast-group.god>span{color:var(--green)}.cast-group p{font-size:.8rem!important;line-height:1.85;margin-top:4px}.board-rules{display:flex;gap:6px;flex-wrap:wrap;margin-top:20px}.board-rules span{font-size:.7rem;border:1px solid #546351;border-radius:5px;padding:4px 7px;color:#c9c5b5}.speaker-stage{position:relative;background:radial-gradient(ellipse at 50% 12%,#63563832,transparent 65%),linear-gradient(150deg,#23322b,#162220);border:1px solid #a48e6055;border-radius:16px;padding:30px 28px;text-align:center;overflow:hidden;animation:speaker-arrive .45s ease-out}.speaker-orbit{width:132px;height:132px;margin:22px auto 18px;border:1px solid #c5a8764a;border-radius:50%;padding:10px;position:relative}.speaker-orbit:after{content:'';position:absolute;inset:-9px;border:1px dashed #c5a87638;border-radius:50%;pointer-events:none}.speaker-seat{display:grid;place-items:center;padding:0;line-height:1;width:100%;height:100%;border-radius:50%;font:52px Georgia;color:var(--gold);background:radial-gradient(#d9b57522,#12251e);border:1px solid #bda06b;box-shadow:0 0 35px #d9b57515}.speaker-title{font:1.2rem SimSun,serif;letter-spacing:.12em;color:var(--gold)}.speaker-words{font:1.35rem/1.9 "Microsoft YaHei",sans-serif;margin:25px 0;color:#f0ebda;overflow-wrap:anywhere}.speaker-note{text-align:left;background:#07141145;border:1px solid #72816b44;border-radius:10px;padding:14px 16px;margin:20px 0}.speaker-note .row>span{font-size:.78rem;color:#b9b89f}.speaker-note button{font-size:.76rem;padding:6px 11px}.speaker-note p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.86rem;color:#aebcb0;line-height:1.8;margin-top:10px;max-height:220px;overflow:auto}.speaker-stage>.hint{margin-top:14px;font-size:.73rem}.speaker-stage .primary{box-shadow:0 5px 22px #bfa57616}.interrogation-options{display:grid;gap:10px}.council-dialog{width:min(940px,calc(100vw - 24px));padding:35px;animation:decision-arrive .35s ease-out}.council-dialog h2{font-size:1.8rem}.route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:26px 0}.route-card{display:flex;flex-direction:column;gap:18px;padding:24px 18px;text-align:left;background:linear-gradient(160deg,#3d463025,#10231d);border-color:#786d4f}.route-card>span{font:italic 40px Georgia;color:#bba071}.route-card strong{font:1.05rem SimSun,serif;color:#e5d5b2;line-height:1.6}.route-card small{line-height:1.8}.route-card:hover{transform:translateY(-4px);box-shadow:0 15px 40px #0004;border-color:#e0bc75;background:#334232}.event-dialog{text-align:center;border-color:#c19b63;box-shadow:0 0 100px #bd754329,0 30px 100px #000b;animation:decision-arrive .45s ease-out}.event-dialog::backdrop{background:#120b09c9}.event-sigil{font:64px Georgia;color:#efd5a0;text-shadow:0 0 30px #e1ad62}.event-dialog h2{padding:0;color:#ead6af}.event-dialog p{margin:15px 0;font-size:1.1rem;color:#edcabb}.command-effect{position:fixed;inset:0;background:radial-gradient(ellipse at center,#435b3977,#04130bb0);z-index:1000;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none;animation:ritual-fade .85s both;color:#e7cf9c}.effect-symbol{font:80px Georgia;text-shadow:0 0 45px #cdd998;animation:ritual-symbol .85s both}.effect-ring{position:absolute;width:160px;height:160px;border:1px solid #d5cc90;border-radius:50%;box-shadow:0 0 40px #cdcd8f45,inset 0 0 20px #cdcd8f35;animation:ritual-ring .85s both}.command-effect p{position:relative;margin-top:35px;font:1rem SimSun,serif;letter-spacing:.15em}.poison-effect{background:radial-gradient(ellipse at center,#54355e88,#130819ba);color:#dfb6ef}.poison-effect .effect-ring{border-color:#d2a5e4;box-shadow:0 0 45px #b978d950}.night-outcome{margin-top:18px;padding:16px 18px;background:#4e60402a;border:1px solid #9d9c5c59;border-radius:8px;display:grid;gap:8px}.night-outcome span{font-size:.75rem;letter-spacing:.15em;color:#bda36f}.night-outcome strong{font-size:.96rem;color:#dfd7b7;line-height:1.8}.person-main{touch-action:manipulation}.person:has(.person-main:focus-visible){border-color:var(--gold)}
@keyframes speaker-arrive{from{opacity:.15;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes decision-arrive{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ritual-ring{0%{opacity:0;transform:scale(.4)}40%{opacity:.9}100%{opacity:0;transform:scale(2.5)}}@keyframes ritual-symbol{0%{opacity:0;transform:scale(.65)}45%{opacity:1;transform:scale(1.06)}100%{opacity:0;transform:scale(1.2)}}@keyframes ritual-fade{0%,100%{opacity:0}25%,70%{opacity:1}}
@media(max-width:760px){.speaker-stage{padding:20px 12px;border-radius:10px}.speaker-orbit{width:98px;height:98px;margin:20px auto}.speaker-seat{font-size:38px}.speaker-stage .eyebrow{line-height:1.9}.speaker-title{font-size:.98rem}.speaker-words{font-size:1.07rem;line-height:1.9;margin:22px 0}.speaker-note{padding:11px 9px}.speaker-note .row{gap:6px}.speaker-note p{font-size:.8rem}.speaker-stage .actions button{font-size:.82rem;min-width:0}.council-dialog{padding:24px 18px}.council-dialog h2{font-size:1.35rem}.route-grid{grid-template-columns:1fr;gap:10px;margin:20px 0}.route-card{padding:14px 15px;display:grid;grid-template-columns:30px 1fr;gap:7px 12px}.route-card>span{grid-row:1/3;font-size:30px}.route-card strong{font-size:1rem}.route-card small{font-size:.76rem}.event-dialog p{font-size:.96rem}.command-effect p{font-size:.84rem;letter-spacing:.05em;padding:0 15px;text-align:center}.night-outcome{padding:12px}.interrogation-options button{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.command-effect{opacity:1}.route-card:hover{transform:none}}

.board-section{margin:22px 0 36px}.board-section-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px;border:1px solid var(--line);border-radius:13px;background:#111d19;margin:26px 0 0}.board-section-tabs button{display:flex;align-items:center;justify-content:center;gap:12px;padding:15px 12px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:1.05rem}.board-section-tabs button[aria-selected="true"]{background:#cfb48418;border-color:var(--gold);color:var(--gold);box-shadow:0 2px 12px #0002}.board-section-tabs button span{font-size:.75rem;border:1px solid currentColor;border-radius:20px;min-width:25px;padding:0 6px;opacity:.8}.board-section-tabs button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.section-empty{padding:30px 24px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:.9rem;text-align:center}

.command-effect,.effect-symbol,.effect-ring{will-change:transform,opacity}

.speaker-words,.speech p{white-space:pre-line}.day-duel{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.day-duel .target-box{margin:8px 0}.duel-actions button{flex:1}.skill-report{flex-shrink:0}

.challenge-card{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0 28px;border-color:#b69658}.challenge-card h2{margin:8px 0}.challenge-card p{margin-bottom:0}@media(max-width:600px){.challenge-card{display:block}.challenge-card .actions{margin-top:14px}}

.pool-selection{display:flex;flex-direction:column;align-items:flex-start;gap:8px}

.puffer-controls{flex-shrink:0;margin:0 0 16px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.puffer-controls label{margin:8px 0}.puffer-controls button{width:100%}

.record-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}.record-tabs button{flex:1;white-space:nowrap;padding:10px}.public-event{border-bottom:1px solid #ffffff14;padding:12px 0}.public-event small{color:var(--muted)}.public-event p{margin:6px 0;overflow-wrap:anywhere}.public-events h3{margin-top:24px}.public-events .night-outcome{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin:8px 0}.public-events .night-outcome small{width:100%}.record-archive-bar{margin-bottom:14px}
