.mg-impact-ring{position:fixed;z-index:10002;pointer-events:none;border:2px solid #ffe3a0aa;border-radius:30%;box-shadow:0 0 12px #f5d07755,inset 0 0 10px #fff7c422}.mg-shake-reveal{position:fixed;z-index:10003;display:flex;gap:7px;padding:12px;border:1px solid #eac87599;border-radius:10px;background:#183e2ff5;pointer-events:none;transform:translate(-50%,-50%);box-shadow:0 5px 30px #0006}.mg-shake-reveal img{width:53px;height:86px;border-radius:3px}.mg-sound-settings{position:relative;font-size:12px;z-index:30;align-self:center}.mg-sound-settings>summary{padding:9px 10px;cursor:pointer;list-style:none;border:1px solid var(--line,#ccc);border-radius:8px}.mg-sound-settings>summary:after{content:' ⌄'}.mg-sound-settings>div{position:absolute;top:calc(100% + 8px);right:0;width:245px;padding:16px;border:1px solid var(--line,#ccc);border-radius:10px;background:var(--card,#fff);box-shadow:0 9px 25px #0003;color:var(--text,inherit)}.mg-sound-settings label{display:block;font-size:12px;line-height:1.6}.mg-sound-settings output{float:right;color:#b49254}.mg-sound-settings input[type=range]{width:100%;accent-color:#bda15f;margin:12px 0}.mg-sound-settings .mg-voice-toggle{display:flex;gap:8px;align-items:center}.mg-sound-settings small{display:block;color:var(--mute);font-size:10px;margin-top:13px}.mg-audio-preview{display:flex;gap:7px;margin-top:7px}.matgo-app .mg-audio-preview button{padding:7px 11px;font-size:11px;color:#b49254}.mg-rule-status{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;font-size:9px;color:#9db6a3;margin-top:8px;line-height:1.5}.mg-rule-status b{background:#d7bd7925;color:#f5d797;border:1px solid #d7bd7944;border-radius:5px;padding:3px 8px}.mg-shake-options{display:flex;justify-content:center;gap:8px;margin-top:10px}.mg-shake-options:empty{display:none}.mg-shake-options button{border:1px solid #e1c07877;border-radius:6px;background:#d2b46a22;color:#ffe5a9;padding:7px 12px;font:inherit;font-size:11px;cursor:pointer}.mg-rule-breakdown{border:1px solid #b39a622f;background:#c3a35e0a;border-radius:8px;padding:10px;margin:12px 0;line-height:1.6;font-size:11px;color:#74633f}.mg-rule-breakdown>span,.mg-rule-breakdown>strong{display:block}.mg-rule-breakdown>strong{font-size:14px;margin-top:5px;color:#4c653c}.mg-rule-breakdown>div{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;margin-top:6px}.mg-rule-breakdown b{font-size:10px;border-radius:4px;background:#c19b4f22;padding:2px 6px;font-weight:750;color:#8f6327}.mg-advanced-rules dl{display:grid;grid-template-columns:85px minmax(0,1fr);gap:13px 10px;font-size:12px;line-height:1.7}.mg-advanced-rules dt{color:#b59050;font-weight:750}.mg-advanced-rules dd{margin:0;color:var(--mute)}
@media(max-width:520px){.mg-sound-settings{font-size:10px}.mg-sound-settings>summary{padding:8px}.mg-sound-settings>div{right:-60px;width:225px}.mg-rule-status{font-size:8px;gap:5px}.mg-rule-status b{font-size:8px;padding:2px 5px}.mg-shake-reveal img{width:43px;height:70px}.mg-rule-breakdown{font-size:10px}.mg-advanced-rules dl{grid-template-columns:75px 1fr;font-size:11px}.mg-sound-settings input[type=range]{height:24px}}
@media(prefers-reduced-motion:reduce){.mg-impact-ring{box-shadow:none}}

/* Original illustrated cast atlas. Five reusable rival archetypes. */
.matgo-app .mg-painted-portrait{display:inline-block;flex-shrink:0;width:72px;height:94px;border-radius:14px;background-image:url('./portraits/seochon-cast.png');background-size:500% 100%;background-position:var(--portrait-position) center;border:1px solid #c6a86b;box-shadow:0 4px 14px #0004;vertical-align:middle}
.matgo-app .mg-opponent-roster button{padding:10px;gap:12px;align-items:center}
.matgo-app .mg-opponent-roster .mg-painted-portrait{width:66px;height:92px;border-radius:10px}
.matgo-app .mg-seat .mg-painted-portrait{width:66px;height:84px}
.matgo-app .mg-story-face .mg-painted-portrait{width:130px;height:174px;border-radius:18px}
@media(max-width:640px){.matgo-app .mg-opponent-roster .mg-painted-portrait{width:52px;height:72px}}

.matgo-app .mg-rival-id .mg-painted-portrait{width:58px;height:76px;border-radius:12px}.matgo-app .mg-scene-card>.mg-painted-portrait{width:130px;height:174px;border-radius:18px}

/* Independently composed portraits, not five crops of a uniform lineup. */
.matgo-app .mg-painted-portrait{background-image:none;object-fit:cover;object-position:center 26%}
.matgo-app .mg-scene-card>.mg-painted-portrait{width:148px;height:222px;object-fit:cover;object-position:center center}
.matgo-app .mg-opponent-roster .mg-painted-portrait{width:74px;height:111px;object-position:center 30%}
.matgo-app .mg-story-face .mg-painted-portrait{width:112px;height:168px}
.mg-voice-choice{display:grid;grid-template-columns:1fr auto;gap:9px 12px;border:1px solid #ba9c6044;border-radius:12px;padding:14px;margin:18px 0 10px}.mg-voice-choice legend{font-size:13px;padding:0 8px;color:#b49254}.mg-voice-choice label{display:flex;gap:10px;align-items:center;padding:6px}.mg-voice-choice input{accent-color:#b49254}.mg-voice-choice button{font-size:11px;padding:7px 12px}.mg-sound-settings>div{width:290px;max-height:min(78vh,680px);overflow:auto}.mg-audio-preview{flex-wrap:wrap}.mg-sound-settings select{margin:5px 0 10px;width:100%}.mg-callout[data-call=poetry]{color:#ff9a89;text-shadow:0 4px 0 #71251f,0 0 30px #fb503b77}.mg-callout[data-call=blue]{color:#9ad8ff;text-shadow:0 4px 0 #214b88,0 0 30px #2f8aff88}.mg-callout[data-call=grass]{color:#bff0a0;text-shadow:0 4px 0 #335c2b,0 0 30px #68c44588}.mg-callout[data-call$=bright]{color:#ffe2a0;text-shadow:0 4px 0 #8c5b21,0 0 38px #ffb92d99}.mg-callout[data-call=five-bright]{font-size:clamp(48px,7vw,90px);letter-spacing:4px}.mg-rule-status .mg-high-go{background:#832f1b;color:#ffe3ae;box-shadow:0 0 13px #db673744}
@media(max-width:640px){.matgo-app .mg-opponent-roster .mg-painted-portrait{width:54px;height:81px}.mg-sound-settings>div{width:260px;max-width:82vw}.matgo-app .mg-scene-card>.mg-painted-portrait{width:110px;height:165px}}

/* Five-chapter roster; face assets are individually sliced WebP files. */
.mg-threats{display:flex;gap:7px;flex-wrap:wrap;min-height:0;margin:6px 0}.mg-threat{display:flex;align-items:center;gap:6px;padding:4px 7px;border:1px solid #e9ad4c88;border-radius:7px;background:#d7982917;color:#f1c775;font-size:10px}.mg-threat img{height:30px;width:19px;border-radius:2px}.mg-threat small{font-size:9px}.mg-threat-blue{border-color:#72b8ed;color:#98d4ff;background:#469de61a}.mg-threat-poetry{border-color:#e77c74;color:#ffa59b;background:#df4a401a}.mg-threat-grass{border-color:#90bd70;color:#b5da8e;background:#70ad431a}.mg-threats:empty{display:none}.mg-bomb-button{background:#a4462529!important;border-color:#edb36f!important;color:#f3ca8d!important}.mg-callout[data-call=bomb]{color:#ffca7b;text-shadow:0 3px 0 #6b2819,0 0 24px #df743755}.matgo-app .mg-painted-portrait{object-position:center 22%;background:none}.mg-static-guide{display:contents}

/* Regional chapter storytelling */
.mg-region-intro{border-top:3px solid var(--region-color);background:radial-gradient(ellipse at top right,color-mix(in srgb,var(--region-color) 20%,transparent),transparent 65%),#fff8e8}
.mg-story-seal{width:50px;height:50px;margin:0 auto 12px;border:1px solid var(--region-color);border-radius:14px;display:grid;place-items:center;font-size:30px;color:var(--region-color);background:#0002}
.mg-region-intro .mg-travel-story{font-size:15px;line-height:1.85;text-align:left;max-width:42ch;margin:12px auto 16px;word-break:keep-all}
.mg-story-route{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin:12px 0 20px}
.mg-story-route span{font-size:10px;padding:4px 7px;border-radius:20px;opacity:.6;border:1px solid #8885}
.mg-story-route .is-current{opacity:1;color:var(--region-color);border-color:var(--region-color);font-weight:700}
.mg-money-goal button{font:inherit;font-size:12px;margin-top:8px;padding:6px 10px;border-radius:8px;border:1px solid #8885;color:inherit;background:transparent;cursor:pointer}
@media(max-width:600px){.mg-region-intro .mg-travel-story{font-size:13px;line-height:1.7}.mg-story-route{margin:8px 0}.mg-story-seal{width:38px;height:38px;font-size:24px}}

.mg-region-intro{max-height:min(760px,88vh);overflow-y:auto;overscroll-behavior:contain}

.mg-region-intro{max-height:calc(100dvh - 180px);scroll-margin-top:150px}

.mg-region-intro>.mg-primary{position:sticky;bottom:0;z-index:2;box-shadow:0 -8px 18px #fff8e8;margin-top:12px}
