.mt-header { display:flex; align-items:center; justify-content:space-between; gap:12px; max-width:1200px; margin:auto; padding:18px 24px; border-bottom:1px solid #bb987339; font-size:14px; color:#c7b9a8; }
.mt-header a { color:#dbc194; text-decoration:none; }
.mt-header button { padding:9px 14px; border:1px solid #8d7658; background:transparent; color:#e7cfac; }
.mt-brand { font-size:24px; white-space:nowrap; }.mt-brand span { font-size:19px; }
.mt-kicker { font:12px/1.6 sans-serif; letter-spacing:.14em; color:#c6a774; margin:0 0 8px; }
.mt-lobby { max-width:820px; padding:36px 24px 60px; margin:auto; text-align:center; }
.mt-lobby h1 { font-size:clamp(34px,6vw,56px); font-weight:500; margin:0 0 24px; }.mt-lobby h1 span { display:block; font-size:18px; color:#c7b6a9; margin-top:12px; }
.mt-lobby p,.mt-note { line-height:1.9; font-size:16px; color:#bbbec9; }
.mt-note { text-align:left; padding:22px 26px; margin:24px 0; background:#171925; border:1px solid #665542; }.mt-note p { margin:8px 0; }
.mt-note strong { color:#e1c49a; }
.mt-start-actions { display:grid; gap:12px; max-width:540px; margin:26px auto 18px; }.mt-start-actions button { min-height:58px; font-size:18px; }
.mt-allies { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:8px; max-width:780px; margin:0 auto 20px; width:100%; }
.mt-ally { min-width:0; border:1px solid #514653; background:#151722; position:relative; opacity:.72; transition:border-color .2s,opacity .2s; }
.mt-ally img { display:block; width:100%; aspect-ratio:1; object-fit:cover; object-position:50% 25%; }
.mt-ally span { display:block; font-size:12px; text-align:center; padding:5px 1px; white-space:nowrap; color:#d2c6b7; }
.mt-ally.supported { opacity:1; border-color:#cbaa6c; }.mt-ally.supported:after { content:'✓'; position:absolute; right:3px; top:2px; color:#fff1ba; text-shadow:0 1px 4px #000; }
.mt-ally.active { opacity:1; box-shadow:0 0 16px #d3ad6144; border-color:#e3c783; }
.mt-scene { display:grid; grid-template-columns:1fr 1fr; max-width:1120px; min-height:600px; margin:26px auto; border:1px solid #766146; }
.mt-scene-art { min-height:430px; background:radial-gradient(ellipse,#4f3349,#10131e); overflow:hidden; }.mt-scene-art .mt-speaker-art { width:100%; height:100%; max-height:760px; object-fit:cover; object-position:50% 20%; }
.mt-scene-text { display:flex; flex-direction:column; padding:40px; background:#221a24; }.mt-scene-text h1 { color:#d2ad91; font-size:25px; font-weight:400; margin:12px 0; }
.mt-quote { font-size:clamp(18px,2vw,23px); line-height:1.9; white-space:normal; margin:12px 0 20px; color:#f1e8df; }
.mt-scene-nav { display:flex; gap:20px; align-items:center; justify-content:space-between; margin-top:auto; }.mt-scene-nav button { min-width:180px; }
.mt-absence { display:flex; flex-direction:column; gap:20px; align-items:center; justify-content:center; height:100%; min-height:240px; background:linear-gradient(#0b0d18bb,#0b0d18f0),url('/assets/story/castle-hall-v1.webp') center/cover; color:#d3b785; }.mt-absence span { font-size:42px; letter-spacing:.18em; }.mt-absence small { font-size:14px; }
.mt-candidates { display:flex; width:100%; justify-content:center; gap:20px; }.mt-candidates button { display:flex; flex-direction:column; align-items:center; gap:10px; color:#ead3b4; background:none; border:0; font-size:14px; }.mt-candidates button:hover { transform:translateY(-4px); }
.mt-tools { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin-top:18px; }.mt-tools button { font-size:14px; padding:10px 0; }
.mt-practice-bar { display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:14px; padding:10px 2px; color:#d9b985; }.mt-practice-bar button { font-size:14px; }
.mt-banter { display:flex; gap:12px; background:#252030; border-left:3px solid #cbaa76; padding:10px 14px; margin:12px 0 0; align-items:center; min-height:75px; }.mt-banter img { width:45px; height:52px; object-fit:cover; object-position:50% 25%; border-radius:4px; }.mt-banter p { margin:0; font-size:15px; line-height:1.7; }.mt-banter b { display:block; color:#d8b77f; font-size:12px; }
.mt-result { max-width:650px; margin:auto; text-align:center; padding:35px 24px 60px; }.mt-result h1 { color:#e6c88e; font-size:46px; font-weight:400; margin:12px 0; }.mt-final-points { color:#f8dfaa; font-size:64px; margin:5px 0; }.mt-final-points small { font-size:20px; margin-left:8px; }.mt-result>p { line-height:1.9; }.mt-result>.primary,.mt-result>.secondary { width:100%; margin-bottom:12px; min-height:54px; }
.mt-yaku { text-align:left; margin:20px 0 28px; border-top:1px solid #695d4c; }.mt-yaku>div { display:flex; justify-content:space-between; gap:15px; padding:10px 3px; border-bottom:1px solid #695d4c55; font-size:16px; }.mt-bonus { color:#e9c07c; }
.mt-practice-result { max-width:620px; }.mt-practice-result p { line-height:1.8; font-size:16px; }.mt-practice-result>button { width:100%; margin-top:12px; }.mt-practice-result blockquote { border-left:2px solid #c4a270; margin:20px 0; padding-left:18px; line-height:1.8; color:#dac7b3; }.mt-result-value { color:#e8c686; font-size:24px!important; }
@media(max-width:720px){
 .mt-header { padding:12px; gap:8px; }.mt-header>span { font-size:12px; }.mt-brand span { display:none; }.mt-header button { padding:8px; font-size:12px; }
 .mt-lobby { padding:25px 18px; }.mt-lobby .mt-allies { grid-template-columns:repeat(4,1fr); max-width:400px; }.mt-note { padding:18px; }
 .mt-scene { grid-template-columns:1fr; margin:12px; min-height:0; }.mt-scene-art { height:300px; min-height:0; }.mt-scene-text { padding:22px; min-height:300px; }.mt-scene-art .mt-speaker-art { object-position:50% 25%; }.mt-scene-text .mt-quote { font-size:19px; }.mt-scene-nav { margin-top:24px; }
 .mt-result .mt-allies { grid-template-columns:repeat(4,1fr); }
}

/* The finale uses renderGame and its normal responsive table, hand and buttons. */
.mansion-finale-match .mt-battle-voice { display:flex; gap:12px; align-items:center; min-width:0; }
.mansion-finale-match .mt-battle-voice>.portrait { width:56px; height:66px; flex-shrink:0; overflow:hidden; }
.mansion-finale-match .mt-battle-voice>.portrait img { width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.mansion-finale-match .mt-battle-voice>div { min-width:0; }
.mansion-finale-match .mt-battle-voice span { color:var(--gold); font-size:14px; }
.mansion-finale-match .mt-battle-voice small { display:block; font-size:12px; color:var(--muted); }
.mansion-finale-match .mt-battle-voice p { margin:4px 0 0; line-height:1.7; font-family:var(--serif); font-size:16px; }
.mansion-finale-match .match-character h1 { font-size:clamp(24px,2.7vw,38px); letter-spacing:.05em; overflow-wrap:anywhere; }
.mansion-finale-match .match-character>span:first-child { letter-spacing:.05em; font-size:14px; }
.mansion-finale-match .mt-support-progress { padding-top:14px; margin-top:16px; }
.mansion-finale-match .mt-support-progress .mt-allies { grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin:0; }
.mansion-finale-match .mt-battle-actions button { white-space:normal; line-height:1.5; }
.mansion-finale-match .mt-choice-actions .mt-candidates { gap:12px; }
.mansion-finale-match .mt-choice-actions button { min-width:0; padding:5px; flex:1; }
.mansion-finale-match .mt-choice-actions .tile { width:38px; height:51px; }
.mansion-finale-match .turn-message { font-size:14px; }
@media(max-width:760px){
 .mansion-finale-match .mt-battle-actions { flex-wrap:wrap; }
 .mansion-finale-match .mt-battle-actions button { min-height:48px; }
 .mansion-finale-match .mobile-dialogue { align-items:stretch; }
 .mansion-finale-match .mt-battle-voice>.portrait { width:48px; height:62px; }
}
.compact-landscape .mansion-finale-match .table-area { grid-template-rows:22px minmax(75px,1fr) auto auto; }
.compact-landscape .mansion-finale-match .mobile-dialogue { max-height:84px; overflow:auto; }
.compact-landscape .mansion-finale-match .mt-battle-voice { gap:8px; }
.compact-landscape .mansion-finale-match .mt-battle-voice>.portrait { width:32px; height:40px; }
.compact-landscape .mansion-finale-match .mt-battle-voice p { font-size:14px; line-height:1.5; }
.compact-landscape .mansion-finale-match .mt-battle-voice small { display:inline; margin-left:8px; }
.compact-landscape .mansion-finale-match .hand-zone { grid-template-rows:auto var(--hand-height); }
.compact-landscape .mansion-finale-match .turn-message { font-size:12px; line-height:1.4; }
.compact-landscape .mansion-finale-match .mt-choice-actions .tile { width:25px; height:33px; }
.compact-landscape .mansion-finale-match .mt-choice-actions button { min-height:0; gap:2px; padding:0; }
