.episode-modal{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:24px;background:#181512b8;backdrop-filter:blur(8px);opacity:0;visibility:hidden;pointer-events:none;transition:.2s}
.episode-modal.is-open{opacity:1;visibility:visible;pointer-events:auto}
.episode-dialog{position:relative;width:min(760px,94vw);max-height:90vh;overflow:auto;background:#faf8f3;padding:38px;box-shadow:0 24px 80px #0008;color:#292723}
.episode-close{position:absolute;right:14px;top:10px;border:0;background:none;color:inherit;font-size:30px;line-height:1;cursor:pointer}
.episode-dialog h2{font:italic 38px Georgia,serif;margin:.1em 0 .6em}
.episode-dialog h3{margin:22px 0 4px;font-size:13px;letter-spacing:.15em;text-transform:uppercase}
.episode-dialog p{line-height:1.9}
.episode-detail-image{aspect-ratio:3/2;overflow:hidden;background:#ddd}
.episode-detail-image img{width:100%;height:100%;object-fit:cover}
.episode-more{display:block;margin-top:14px;color:#78866f;font-size:11px;font-weight:700;letter-spacing:.08em}
.clue-hint{display:block;margin-top:14px;padding:10px 12px;border:1px solid #8a1717;color:#8a1717;font-weight:800;font-size:12px;animation:cluePulse 1.8s infinite}
@keyframes cluePulse{50%{box-shadow:0 0 0 5px #8a17171a}}
.truth .episode-dialog{background:#171717;color:#ddd}
@media(max-width:760px){.episode-modal{padding:10px}.episode-dialog{padding:28px 20px}.episode-dialog h2{font-size:28px}}
