.case-note{display:none;margin:0 0 12px;padding:11px 13px;border:1px solid #7b6179;border-radius:13px;background:#1d1828;color:#ead4bc;font-size:.87rem;line-height:1.55}
.case-note.on{display:block}.case-note b{color:#f2c580}
.story-option{width:100%;border:1px solid #92728d;background:#34253b;border-radius:14px;padding:13px 15px;text-align:left;min-height:50px;line-height:1.4}
.story-option:active{background:#6d4966}.story-option span{display:block;font-size:.76rem;color:#c5aac0;margin-top:3px}
.story-end{border:1px solid #a5798e;background:#30243a;border-radius:16px;padding:14px;line-height:1.65;color:#f5d8be}
.roster-wrap .heading{margin:20px 0 14px}
.roster-wrap .heading p{color:#e6d4de}
.play .scene{flex:none;min-height:0;width:calc(100% + 32px);height:clamp(330px,48dvh,560px);margin:8px -16px 0;border-radius:0;border-left:0;border-right:0;border-bottom:0;overflow:hidden}
.play .avatar{width:100%;height:100%;max-height:none;aspect-ratio:auto;flex:none;animation:none;will-change:auto}
.play .avatar img,.play .avatar .local-window img{object-fit:cover}
.play .avatar img.expression,.play .avatar img.surprise{mask-image:none;-webkit-mask-image:none;transition:none}
.play .story{min-height:0;margin:9px 0;padding:12px 14px}
.play .story p{font-size:1rem;line-height:1.55;margin:5px 0 0}
.play .case-note{margin:0 0 9px;padding:8px 11px;background:#282234;border-color:#806b7d;font-size:.84rem}
.play .hint{margin:8px 0 2px}
.play .choices{gap:8px}
.story-goal{margin:10px 0 0;padding:9px 12px;border-left:3px solid #f3c780;background:#292034;border-radius:0 10px 10px 0;color:#fff5df;line-height:1.35;font-weight:700}
.story-prompt{color:#f2ca87;font-size:.88rem;font-weight:700;margin:2px 0 0}
.story-option{display:flex;align-items:center;gap:11px;min-height:57px;padding:8px 12px;background:#3b2b44;border:1.5px solid #b58ca8;box-shadow:0 3px 0 #140d1b;text-align:left}
.story-option:focus-visible{outline:3px solid #f3c780;outline-offset:2px}
.story-option .choice-num{flex:none;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#f2c780;color:#281b2d;font-weight:800;font-size:.85rem;margin:0}
.story-option .choice-copy{display:block;min-width:0;margin:0}.story-option strong{display:block;font-size:.95rem;font-weight:700;line-height:1.3}.story-option small{display:block;color:#e2c8d9;font-size:.78rem;line-height:1.3;margin-top:2px}
@media(min-width:600px){.play .scene{height:min(60dvh,620px)}}
.flow-hidden{display:none!important}
.case-intro,.profile-screen{padding:24px 0 10px;line-height:1.7}
.case-kicker{font-size:.86rem;font-weight:800;letter-spacing:.14em;color:#f0c47f;margin-bottom:10px}
.case-intro h1,.profile-screen h1{font-family:serif;font-size:clamp(1.65rem,7vw,2.2rem);line-height:1.3;margin:0 0 18px;color:#fff1dc}
.case-intro p,.profile-screen p{font-size:1rem;line-height:1.75;color:#f0e4ee;margin:0 0 17px}
.case-intro blockquote{margin:22px 0;padding:18px 16px;border-left:3px solid #f1c37c;border-radius:0 12px 12px 0;background:#302237;color:#ffe8be;font-weight:700;line-height:1.65}
.case-intro .primary,.profile-screen .primary{margin-top:13px;min-height:56px;text-align:center;font-size:1.05rem}
.roster .hero-role{display:block;margin-top:7px;color:#f4dbc2;font-size:.82rem;line-height:1.35}
.profile-back{margin-bottom:14px}
.profile-image{height:clamp(300px,45dvh,440px);margin-bottom:20px;border:1px solid #77637c;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 25%,var(--light),transparent 65%),linear-gradient(145deg,var(--dark),#171120);text-align:center}
.profile-image img{height:100%;max-width:100%;object-fit:contain}
.profile-screen h1{margin-bottom:3px}
.profile-screen .profile-role{color:#f0c47f;font-weight:700;margin-bottom:15px}
.profile-lead{background:#292034;border-left:3px solid #f1c37c;padding:11px 14px;border-radius:0 9px 9px 0;color:#fff0d8;line-height:1.5}
.play .scene{background:radial-gradient(circle at 50% 27%,var(--light),transparent 54%),linear-gradient(155deg,var(--dark),#120d1f 80%)}
.play .scene-label{bottom:10px;left:10px;padding:6px 9px;background:#17101bb0}
.play .story{position:relative;z-index:1;margin:0 0 7px;padding:13px 15px;background:#30243b;border:1px solid #806781;border-top:2px solid #e4b879;border-radius:0 0 17px 17px;box-shadow:0 9px 18px #0003}
.play .story strong{font-size:.91rem}
.play .story p{margin:5px 0 0;line-height:1.5}
.play .story .spoken{color:#ffe2ac;font-weight:700}
.play .stats{margin:4px 0 9px}
.play .stats .meter{min-width:55px}.play .stats #score{font-size:.82rem;white-space:nowrap;color:#ffe0b5}
.choice-effect{margin:0 0 9px;padding:8px 11px;border-radius:10px;background:#312637;color:#ffddb0;font-size:.82rem;line-height:1.4}
.play .case-note{margin:0 0 8px}
.case-progress{display:flex;flex-direction:column;gap:3px;margin:0 0 14px;padding:12px 14px;border:1px solid #947583;border-radius:13px;background:#30243a;color:#f2d6bf;line-height:1.4}
.case-progress strong{font-size:1rem;color:#ffe1a7}.case-progress span{font-size:.82rem}
.case-progress details{margin-top:5px;border-top:1px solid #745e74;padding-top:8px;font-size:.82rem}.case-progress summary{cursor:pointer;color:#ffe1a7;font-weight:700}.case-progress ul{margin:8px 0 0;padding-left:20px}.case-progress li{margin:0 0 7px;line-height:1.5}
.roster .hero .case-done{position:absolute;top:8px;left:8px;padding:3px 8px;border-radius:30px;border:1px solid #baa0ae;background:#211b2be8;color:#ecd8e0;font-size:.7rem;font-weight:700}
.roster .hero .case-done.on{border-color:#f0ca7d;background:#493344;color:#ffe3a8}
#case-final{margin:14px 0 5px;min-height:56px;background:#966073}
.play.final-mode .stats,.play.final-mode .choice-effect{display:none}
.play.final-mode .scene-label{font-weight:700}
.evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.evidence-card{display:block;min-height:90px;padding:11px;border:1.5px solid #9f839a;border-radius:12px;background:#30263a;text-align:left;line-height:1.4}
.evidence-card[aria-pressed="true"]{border-color:#ffd58e;background:#594159;box-shadow:inset 0 0 0 2px #ffd58e}
.evidence-card strong{display:block;font-size:.92rem;color:#ffe1ad}.evidence-card small{display:block;margin-top:5px;color:#f3e1ed;font-size:.77rem}
.evidence-status{margin:2px 0;color:#ffe1ad;font-size:.86rem;line-height:1.45}
.evidence-witness{padding:10px 12px;border:1px solid #b090a7;border-radius:10px;background:#30283a;text-align:left;color:#f8e8d6}
.choices .primary:disabled{opacity:.48;cursor:default}
.intro-secondary{display:block;width:100%;margin-top:12px;min-height:46px;text-align:center}
.profile-tip{margin:14px 0 0!important;padding:10px 12px;border:1px solid #826b81;border-radius:10px;background:#2c2335;color:#ffe2b9!important;font-size:.9rem!important}
.case-progress .case-cleared{margin-top:6px;padding:7px 9px;border-radius:7px;background:#46364a;color:#ffe4b2;font-weight:700}
.mini-entry{display:block;align-self:flex-end;color:#f3c989;text-decoration:none;border:1px solid #786277;background:#2c2137;border-radius:99px;padding:9px 14px;margin-top:10px;font-size:.86rem}
.mini-entry:hover,.mini-entry:focus-visible{background:#48304b}
.case-steps{display:grid;gap:9px;counter-reset:case-step;list-style:none;margin:18px 0;padding:0}
.case-steps li{counter-increment:case-step;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid #765f75;background:#2d2237;font-weight:700;line-height:1.35}
.case-steps li:before{content:counter(case-step);display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:#f3ca86;color:#2b1c2f}
.case-intro .case-rule{font-size:.9rem;line-height:1.55;color:#dfcddd}
.roster .hero.recommended{border:2px solid #f3ca86;box-shadow:0 0 0 2px #f3ca8633,0 10px 28px #0005}
.case-progress{margin-bottom:8px}.case-progress span{font-size:.88rem}
.profile-image{height:clamp(220px,34dvh,330px);margin-bottom:13px}
.profile-screen{padding-top:14px}.profile-screen p{margin-bottom:11px}.profile-screen .primary{margin-top:12px}
.profile-reset{display:block;width:100%;margin-top:10px;min-height:44px;text-align:center}
.play .scene{height:auto;aspect-ratio:1}
.play .scene .face-speech{position:absolute;z-index:5;top:16%;right:2%;width:31%;padding:9px 8px;border:1px solid #ffe3b5;border-radius:16px 16px 5px 16px;background:#211629ed;box-shadow:0 8px 24px #0009;color:#fff6e8;text-align:left;font-size:clamp(.8rem,3.3vw,.9rem);font-weight:700;line-height:1.45;overflow-wrap:anywhere;pointer-events:none;white-space:normal;user-select:none}
.play .scene .face-speech::after{content:'';position:absolute;top:22px;left:-8px;width:12px;height:12px;transform:rotate(45deg);border-left:1px solid #ffe3b5;border-bottom:1px solid #ffe3b5;background:#211629}
.play .scene .face-speech-left{left:2%;right:auto;border-radius:16px 16px 16px 5px}
.play .scene .face-speech-left::after{left:auto;right:-8px;transform:rotate(225deg)}
.play .scene .face-speech[hidden]{display:none}
.case-after-entry{margin-top:9px;background:#65517b;border-color:#e9c897}
.play .story{padding:13px 15px}.play .story p{font-size:1rem;line-height:1.52}
.play .choice-effect{margin:7px 0 8px;padding:9px 12px;font-size:.9rem;line-height:1.4}
.play .case-note{padding:9px 12px;font-size:.9rem;line-height:1.5}
.play .stats{margin:10px 0 3px;padding:9px 11px;border:1px solid #645169;border-radius:10px;background:#261d30}
.story-prompt{font-size:1rem;margin:5px 0 2px}
.story-option{min-height:62px;padding:10px 12px;background:#40304c;border-color:#c8a4bd}
.story-option strong{font-size:1rem;line-height:1.4}.story-option small{font-size:.88rem;line-height:1.4;color:#f3ddec}
.story-option .choice-num{width:30px;height:30px;font-size:.95rem}
.evidence-card strong{font-size:.99rem}.evidence-card small{font-size:.88rem}
.evidence-status,.evidence-witness{font-size:.93rem}
.route-guide{display:grid;gap:5px;margin:12px 0 16px;padding:13px;border:1px solid #705d71;border-radius:14px;background:#261e31;line-height:1.45}
.route-guide strong{color:#f3ce92}.route-guide span{font-size:.88rem}.route-guide small{color:#b9aabe}
.route-guide{border-color:#bd936e;background:#392a3c;padding:14px 15px}
.route-guide strong{font-size:1rem;color:#ffe1a8}.route-guide span{font-size:.94rem;color:#f5e4ee}.route-guide small{font-size:.82rem;line-height:1.4}
@media(min-width:900px){
  main{max-width:1120px;padding:22px 24px 34px}
  .roster{grid-template-columns:repeat(3,minmax(0,1fr))}.roster .portrait{height:260px}
  .case-intro,.profile-screen{width:100%;max-width:760px;align-self:center}
  .play.on{display:grid;grid-template-columns:minmax(300px,1fr) minmax(320px,1fr);grid-template-areas:'top top' 'goal goal' 'scene story' 'scene impact' 'scene note' 'scene choices' 'scene stats' 'scene hint';gap:10px 24px;align-content:start;align-items:start}
  .play>.top{grid-area:top;margin-top:8px!important}.play>.story-goal{grid-area:goal;margin:0 0 4px}
  .play>.scene{grid-area:scene;width:100%;height:auto;margin:0;border:1px solid #846d84;border-radius:18px;position:sticky;top:18px;align-self:start}
  .play>.story{grid-area:story;margin:0;border-radius:16px;padding:18px 20px}.play .story p{font-size:1.05rem;line-height:1.7}
  .play>.choice-effect{grid-area:impact;margin:0}.play>.case-note{grid-area:note;margin:0}.play>.choices{grid-area:choices}
  .play>.stats{grid-area:stats;margin:0}.play>.hint{grid-area:hint;margin:0;font-size:.9rem}
  .play .story-option{min-height:66px;padding:12px 15px}.play .story-option strong{font-size:1.03rem}
}

.case-dossier{border:1px solid #6e5476;border-radius:14px;padding:14px;background:#201a2a;margin-top:12px;color:#ede5f1;text-align:left}.case-dossier summary{cursor:pointer;font-weight:700;font-size:16px;min-height:30px}.case-dossier h3{font-size:16px;color:#efd1a3;margin:18px 0 8px}.case-dossier p{font-size:15px;line-height:1.8;margin:8px 0}.case-dossier b{color:#fff}
