:root{--bg:#0f1117;--surface:#1a1d27;--surface2:#232734;--text:#e9ecf1;--muted:#8b93a7;--accent:#5b8cff;--red:#e85555;--blue:#4495e8;--radius:10px;font-family:system-ui,sans-serif;line-height:1.45}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}a{color:#8ec5ff}a:hover{text-decoration:underline}code{background:var(--surface2);border-radius:6px;padding:.15rem .45rem;font-size:.9em}button,input,select{font:inherit}button{cursor:pointer}.risk-control__row{align-items:center;gap:.75rem;min-width:min(100%,14rem);display:flex}.risk-control input[type=range]{appearance:none;background:linear-gradient(90deg,#5b8cff59,#e8555559);border:1px solid #ffffff1f;border-radius:999px;flex:1;min-width:0;height:.45rem}.risk-control input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--text);border:2px solid var(--surface2);cursor:pointer;border-radius:50%;width:1.1rem;height:1.1rem;box-shadow:0 1px 6px #00000073}.risk-control input[type=range]::-moz-range-thumb{background:var(--text);border:2px solid var(--surface2);cursor:pointer;border-radius:50%;width:1.1rem;height:1.1rem;box-shadow:0 1px 6px #00000073}.risk-control input[type=range]:disabled{opacity:.5;cursor:not-allowed}.risk-control__value{font-variant-numeric:tabular-nums;color:var(--text);text-align:right;min-width:2.5rem;font-size:.88rem;font-weight:600}.risk-control--inline{flex-direction:column;gap:.35rem;display:flex}.risk-control__label{color:var(--muted);font-size:.85rem}.github-corner{z-index:1000;color:var(--text);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c121ad9;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .6rem;font-size:.8rem;font-weight:600;text-decoration:none;display:inline-flex;position:fixed;top:.75rem;right:.75rem}.github-corner img{filter:invert();width:.95rem;height:.95rem}.github-corner:hover{background:#121b27f2;border-color:#8ec5ff8c}.app-header{background:var(--surface);border-bottom:1px solid #ffffff14;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;padding:1rem 1.25rem;display:flex}.app-header strong{font-size:1rem}.app-nav{flex-wrap:wrap;gap:.65rem 1rem;font-size:.9rem;display:flex}.app-nav a{color:#8ec5ff;text-decoration:none}.app-nav a:hover{text-decoration:underline}.app-nav a.active{color:var(--text);font-weight:600}.app-main{max-width:960px;margin:0 auto;padding:1.25rem}.page-title{letter-spacing:-.02em;margin:0 0 1rem;font-size:1.35rem;font-weight:600}.muted{color:var(--muted);font-size:.9rem}.error-banner{color:#f0b4b4;border-radius:var(--radius);background:#e8555526;border:1px solid #e8555566;margin-bottom:1rem;padding:.65rem .85rem}.form-grid label{align-items:center;gap:.35rem;margin-bottom:.5rem;margin-right:.75rem;display:inline-flex}.form-actions{margin-top:1rem}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.5rem 1.1rem;font-weight:600}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.api-spinner-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f1117b8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.api-spinner-panel{background:var(--surface);border-radius:var(--radius);border:1px solid #ffffff1a;flex-direction:column;align-items:center;gap:1rem;padding:1.75rem 2.25rem;display:flex;box-shadow:0 12px 48px #00000073}.api-spinner-ring{border:3px solid #ffffff1f;border-top-color:var(--accent);border-radius:50%;width:2.5rem;height:2.5rem;animation:.75s linear infinite api-spin}.api-spinner-msg{color:var(--muted);margin:0;font-size:.95rem}@keyframes api-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.api-spinner-ring{border-top-color:var(--accent);opacity:.85;animation:none}}.form-grid .risk-control--inline{flex-direction:column;align-items:stretch;gap:.35rem;min-width:14rem;display:flex}.btn-secondary{background:var(--surface2);color:var(--text);border:1px solid #ffffff29;border-radius:8px;padding:.5rem .85rem}.btn-secondary:disabled{opacity:.55;cursor:not-allowed}.table-scroll{margin-bottom:1.5rem;overflow-x:auto}.analysis-tabs{gap:.5rem;margin:1rem 0 .85rem;display:flex}.analysis-tab{background:var(--surface2);color:var(--text);border:1px solid #ffffff29;border-radius:999px;padding:.35rem .85rem}.analysis-tab.active{border-color:var(--accent);background:#5b8cff33}.analysis-table{border-collapse:collapse;background:var(--surface);width:100%;font-size:.85rem}.analysis-table th,.analysis-table td{text-align:left;border:1px solid #ffffff1f;padding:.35rem .5rem}.analysis-table th{background:var(--surface2)}.analysis-grid{grid-template-columns:repeat(5,1fr);gap:.35rem;display:grid}.analysis-card{background:var(--surface2);text-align:center;border:1px solid #ffffff1a;border-radius:6px;justify-content:center;align-items:center;min-height:2.5rem;padding:.5rem;font-size:.85rem;display:flex}.analysis-card.red{background:#e855551f;border-color:#c44}.analysis-card.blue{background:#4495e81f;border-color:#48a}.analysis-card.neutral{color:#2e2920;background:linear-gradient(145deg,#e8dcc4,#c9b896 55%,#a89472);border-color:#8b7d62a6}.analysis-card.assassin{color:#eee;background:#222;border-color:#111}.play-root{position:relative}.session-meta{margin:0;font-size:.86rem}.play-footer{border-top:1px solid #ffffff14;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1rem;padding-top:.85rem;display:flex}.play-toolbar{background:var(--surface);border-radius:var(--radius);border:1px solid #ffffff0f;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-bottom:1.25rem;padding:.75rem 1rem;display:flex}.spy-toggle{cursor:pointer;color:var(--muted);align-items:center;gap:.5rem;font-size:.9rem;display:inline-flex}.status-line{color:var(--muted);font-size:.9rem}.status-line strong{color:var(--text)}.clue-panel{background:linear-gradient(135deg, var(--surface2), var(--surface));border-radius:var(--radius);border:1px solid #ffffff12;margin-bottom:1.5rem;padding:1.1rem 1.25rem;box-shadow:0 4px 24px #00000059}.clue-panel.idle{opacity:.85}.clue-panel.clue-panel--active.clue-panel--team-red{background:linear-gradient(135deg, #e8555547 0%, #232734f2 55%, var(--surface) 100%);border-color:#e855556b;box-shadow:0 4px 24px #00000059,inset 0 1px #ffffff0f}.clue-panel.clue-panel--active.clue-panel--team-red .clue-label{color:#ffd2d2d9}.clue-panel.clue-panel--active.clue-panel--team-blue{background:linear-gradient(135deg, #4495e84d 0%, #232734f2 55%, var(--surface) 100%);border-color:#5b8cff73;box-shadow:0 4px 24px #00000059,inset 0 1px #ffffff0f}.clue-panel.clue-panel--active.clue-panel--team-blue .clue-label{color:#c8e1ffe6}.clue-label{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:.35rem;font-size:.75rem}.clue-main{letter-spacing:-.02em;font-size:clamp(1.75rem,4vw,2.35rem);font-weight:700;line-height:1.2}.clue-count{color:var(--accent);margin-left:.35rem;font-size:1.5rem;font-weight:500}.attempts-badge{color:var(--muted);margin-top:.6rem;font-size:.85rem}.clue-panel-inner{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;display:flex}.end-turn-btn{color:#f4fff8;letter-spacing:.02em;text-shadow:0 1px #0003;background:linear-gradient(165deg,#2d9d5a 0%,#1e7a45 55%,#156b3a 100%);border:1px solid #78ffb459;border-radius:10px;flex-shrink:0;padding:.55rem 1.1rem;font-size:.9rem;font-weight:700;box-shadow:0 2px 12px #1ea05073,inset 0 1px #fff3}.end-turn-btn:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 3px 16px #28c8648c,inset 0 1px #ffffff40}.end-turn-btn:focus-visible{outline-offset:2px;outline:2px solid #78ffb4b3}.end-turn-btn:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.2)}.board-wrap{grid-template-columns:repeat(5,1fr);gap:.5rem;margin-bottom:2rem;display:grid}@media (width<=640px){.board-wrap{gap:.35rem}}.card-slot{aspect-ratio:1.6;min-height:3.25rem;position:relative}.card-inner{transform-style:preserve-3d;border-radius:var(--radius);position:absolute;inset:0}.card-slot.is-revealed .card-inner{transform:rotateY(180deg)}.card-face{backface-visibility:hidden;border-radius:var(--radius);text-transform:uppercase;letter-spacing:.03em;border:1px solid #ffffff1f;justify-content:center;align-items:center;padding:.35rem;font-size:clamp(.72rem,1.5vw,.88rem);font-weight:600;display:flex;position:absolute;inset:0}.card-front{background:var(--surface2);color:var(--text)}.play-root.spy-on .card-slot:not(.is-revealed) .card-front{box-shadow:inset 0 0 0 2px #ffffff0f}.play-root.spy-on .card-slot:not(.is-revealed)[data-secret=red] .card-front{background:#e8555538;border-color:#e8555573}.play-root.spy-on .card-slot:not(.is-revealed)[data-secret=blue] .card-front{background:#4495e838;border-color:#4495e873}.play-root.spy-on .card-slot:not(.is-revealed)[data-secret=neutral] .card-front{color:#2a2620;background:#c9b89673;border-color:#8b7d62a6}.play-root.spy-on .card-slot:not(.is-revealed)[data-secret=assassin] .card-front{color:#e8eaef;background:linear-gradient(160deg,#121318 0%,#252830 100%);border-color:#ff505059}.card-back{color:#fff;transform:rotateY(180deg)}.card-back.c-red{background:linear-gradient(145deg,#c43d3d,#8f2626)}.card-back.c-blue{background:linear-gradient(145deg,#2f6fc2,#1a4a8c)}.card-back.c-neutral{color:#2e2920;background:linear-gradient(145deg,#e8dcc4,#c9b896 55%,#a89472)}.card-back.c-assassin{color:#c5c9d4;background:radial-gradient(120% 100% at 30% 20%,#2a2d36 0%,#0c0d12 55%,#050506 100%)}.card-hit{z-index:2;border-radius:var(--radius);cursor:pointer;background:0 0;border:none;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.card-slot:not(.is-revealed) .card-hit:hover~.card-inner .card-front,.card-slot:not(.is-revealed) .card-hit:focus-visible~.card-inner .card-front{filter:brightness(1.08)}.history-block{background:var(--surface);border-radius:var(--radius);border:1px solid #ffffff0f;margin-bottom:1.5rem;padding:1rem 1.15rem}.history-block h2{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 .75rem;font-size:.8rem}.history-empty{margin:0;font-size:.88rem}.history-table-wrap{border:1px solid #ffffff14;border-radius:8px;overflow-x:auto}.history-table{border-collapse:collapse;width:100%;font-size:.86rem}.history-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);background:#00000040;border-bottom:1px solid #ffffff14;padding:.5rem .75rem;font-size:.72rem}.history-table thead th:first-child{width:38%}.history-row{border-bottom:1px solid #ffffff0f}.history-row:last-child{border-bottom:none}.history-row--red{background:linear-gradient(90deg,#e855551f 0%,#1a1d2759 48%,#0000 100%)}.history-row--blue{background:linear-gradient(90deg,#4495e824 0%,#1a1d2759 48%,#0000 100%)}.history-cell{vertical-align:top;color:#d8dce8;padding:.65rem .75rem;line-height:1.45}.history-cell--guesses{border-left:1px solid #ffffff0f}.history-clue-inner{flex-wrap:wrap;align-items:center;gap:.4rem .55rem;display:flex}.history-team-tag{letter-spacing:.08em;text-transform:uppercase;border-radius:4px;padding:.2rem .45rem;font-size:.65rem;font-weight:700}.history-team-tag--red{color:#ffe4e4;background:#e8555559;border:1px solid #e8555580}.history-team-tag--blue{color:#e8f4ff;background:#4495e859;border:1px solid #5b8cff80}.history-clue-word{letter-spacing:-.01em;color:var(--text);font-size:1rem;font-weight:700}.history-clue-count{color:var(--accent);font-size:.95rem;font-weight:600}.history-guess-list{margin:0;padding:0;list-style:none}.history-guess-line{border:1px solid #0000;border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;margin-bottom:.3rem;padding:.35rem .45rem;display:flex}.history-guess-line:last-child{margin-bottom:0}.history-guess-line--red{background:#e855551f;border-color:#e8555538}.history-guess-line--blue{background:#4495e81f;border-color:#4495e838}.history-guess-line--neutral{background:#c9b8961f;border-color:#b4a58247}.history-guess-line--assassin{color:#e8eaef;background:#282830d9;border-color:#ff505059}.history-guess-line--unknown{background:#ffffff0a}.history-guess-emoji{flex-shrink:0;font-size:1rem;line-height:1}.history-guess-word{text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;font-weight:600}.history-guess-color{color:var(--muted);text-transform:capitalize;font-size:.75rem}.action-panel{background:var(--surface);border-radius:var(--radius);border:1px solid #ffffff0f;margin-bottom:1rem;padding:1rem 1.15rem}.action-panel h2{margin:0 0 .75rem;font-size:1rem}.action-panel input[type=text],.action-panel input[type=number]{background:var(--surface2);color:var(--text);border:1px solid #ffffff1f;border-radius:6px;padding:.4rem .55rem}.endgame-modal-backdrop{z-index:120;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#080a0eb8;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.endgame-modal{background:linear-gradient(165deg,#242936fa,#171b25fa);border:1px solid #ffffff1f;border-radius:12px;width:min(680px,100%);padding:1.15rem 1.2rem;box-shadow:0 16px 48px #00000080}.endgame-modal h2{margin:0 0 .65rem}.endgame-modal__winner{margin:0 0 .45rem;font-size:1.02rem}.endgame-modal__seed,.endgame-modal__hint{margin:0 0 .4rem}.endgame-modal__actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.85rem;display:flex}.fx-celebrate{pointer-events:none;z-index:100;opacity:0;background:radial-gradient(80% 50% at 50% 40%,#48d38c59,#0000 60%);animation:1.15s forwards celebrateFade;position:fixed;inset:0}.fx-oops{pointer-events:none;z-index:100;opacity:0;background:radial-gradient(70% 45% at 50% 45%,#e8555547,#0000 55%);animation:.9s forwards oopsFade;position:fixed;inset:0}@keyframes celebrateFade{0%{opacity:0}25%{opacity:1}to{opacity:0}}@keyframes oopsFade{0%{opacity:0}30%{opacity:1}to{opacity:0}}.play-new__lead{max-width:32rem;margin-top:0}.role-matrix{grid-template-rows:auto 1fr 1fr;grid-template-columns:minmax(4.5rem,auto) 1fr 1fr;align-items:stretch;gap:.65rem .75rem;max-width:36rem;margin-bottom:1.25rem;display:grid}.role-matrix__corner{min-height:1rem}.role-matrix__colhead{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);text-align:center;justify-content:center;align-items:flex-end;padding-bottom:.25rem;font-size:.72rem;display:flex}.role-matrix__rowhead{letter-spacing:.06em;border-radius:var(--radius);justify-content:center;align-items:center;padding:.5rem .35rem;font-size:.95rem;font-weight:700;display:flex}.role-matrix__rowhead--red{color:#ffe8e8;background:linear-gradient(160deg,#e8555559,#78282840);border:1px solid #e8555573}.role-matrix__rowhead--blue{color:#e8f4ff;background:linear-gradient(160deg,#4495e861,#1e468247);border:1px solid #5b8cff73}.role-matrix__cell{border-radius:var(--radius);justify-content:center;align-items:center;min-height:3.25rem;padding:.55rem .5rem;display:flex}.role-matrix__cell--red{background:#e8555514;border:1px solid #e8555533}.role-matrix__cell--blue{background:#4495e81a;border:1px solid #4495e838}.role-segment{background:#00000059;border:1px solid #ffffff1a;border-radius:999px;width:100%;max-width:11rem;padding:3px;display:inline-flex}.role-segment__btn{color:var(--muted);background:0 0;border:none;border-radius:999px;flex:1;padding:.45rem .5rem;font-size:.82rem;font-weight:600;transition:background .15s,color .15s}.role-segment__btn:hover:not(:disabled){color:var(--text)}.role-segment__btn:disabled{opacity:.55;cursor:not-allowed}.role-segment__btn--on{background:var(--surface2);color:var(--text);box-shadow:0 1px 4px #00000059}.play-new__advanced{border-radius:var(--radius);background:var(--surface);border:1px solid #ffffff14;max-width:36rem;margin-bottom:1.25rem;padding:0}.play-new__advanced>summary{cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;padding:.65rem 1rem;font-size:.88rem;list-style:none}.play-new__advanced>summary::-webkit-details-marker{display:none}.play-new__advanced>summary:after{content:" ▾";opacity:.7;font-size:.75rem}.play-new__advanced[open]>summary:after{content:" ▴"}.play-new__advanced-inner{border-top:1px solid #ffffff0f;flex-wrap:wrap;align-items:flex-end;gap:1rem 1.5rem;padding:.85rem 1rem 1rem;display:flex}.play-new__field{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.play-new__field span{font-weight:600}.play-new__field input{background:var(--surface2);color:var(--text);border:1px solid #ffffff1f;border-radius:6px;min-width:8rem;padding:.45rem .55rem}.play-new__field--risk .risk-control__row{min-width:min(100%,18rem)}.play-new__shuffle{background:var(--surface2);color:var(--text);border:1px solid #ffffff26;border-radius:6px;align-self:flex-start;margin-top:.4rem;padding:.35rem .65rem;font-size:.8rem}.play-new__shuffle:hover:not(:disabled){border-color:#ffffff47}.btn-primary--lg{padding:.6rem 1.35rem;font-size:1rem}
