/* Round 1 V2.1 patch. Loaded after v2.css. Safe to remove independently. */
:root { --mm21-navy:#2d294b; --mm21-orange:#ad5824; }
/* Move game navigation into document flow, ending page overlays on buttons and text. */
.app { min-height:100vh; padding-bottom:26px; }
.bottom-nav { position:relative !important; left:auto !important; right:auto !important; bottom:auto !important; transform:none !important; width:fit-content; max-width:calc(100% - 24px); margin:45px auto 16px; }
#screen { padding-bottom:0; }
/* Dedicated dialogue lives on a solid panel. Crop speech bubbles baked into original art. */
.hero-mascot { position:relative; overflow:hidden; background:linear-gradient(#f9dd95 70%, #fbeac2); }
.hero-mascot img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; clip-path:inset(0 0 24% 0); }
.v2-fizz-caption { z-index:2; left:17px; right:17px; bottom:17px; padding:13px 17px; background:#fffdf4; border:3px solid #fff; box-shadow:0 5px 0 #d3965a; }
.v2-fizz-caption:before { content:''; pointer-events:none; position:absolute; inset:-13px -4px auto; height:7px; border-radius:50%; background:#ffd18b; }
/* Profile improves hierarchy and gives the character a real illustrated presence. */
.mm21-page { padding-bottom:15px; }
.mm21-topline { justify-content:space-between; flex-wrap:wrap; gap:10px; }
.mm21-profile { display:grid; grid-template-columns:minmax(250px,.8fr) minmax(340px,1.35fr); gap:24px; padding:24px; align-items:stretch; }
.mm21-portrait { background:linear-gradient(160deg,var(--portrait-color),#fff2d7); border:3px solid white; border-radius:28px; display:flex; align-items:center; flex-direction:column; justify-content:center; overflow:hidden; min-height:480px; padding:10px 18px 26px; text-align:center; }
.mm21-portrait img { display:block; width:min(100%,350px); height:auto; aspect-ratio:460/480; object-fit:contain; filter:drop-shadow(0 15px 9px #5a51321b); animation:v2-bob 4s ease-in-out infinite; }
.mm21-portrait-details { margin-top:-7px; }
.mm21-portrait-details h2 { margin:7px 0; font-size:clamp(20px,2.3vw,27px); }
.mm21-portrait-details p { margin:0; color:var(--muted); }
.mm21-profile-body { min-width:0; }
.mm21-profile-body .headline { font-size:clamp(27px,3vw,46px); margin:0 0 17px; }
.mm21-sensitivity { font-size:16px !important; }
.mm21-conversation { background:#fffcf5; border:2px solid #ecd5a7; border-radius:24px; padding:24px; margin-top:22px; box-shadow:0 5px 0 #dcc092; }
.mm21-dialogue-title { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:12px; }
.mm21-dialogue-title span { background:#ffd36c; border-radius:15px; padding:5px 10px; font-size:11px; font-weight:900; text-transform:uppercase; }
.mm21-dialogue-title strong { color:var(--mm21-orange); font-size:17px; }
.mm21-scenario { margin:10px 0; font-size:17px; line-height:1.6; }
.mm21-question { font-size:18px; font-weight:900; color:var(--mm21-navy); }
.mm21-options { display:grid; grid-template-columns:1fr; gap:10px; margin-top:16px; }
.mm21-option { border:2px solid #e4d3aa; background:#fffdf8; color:var(--mm21-navy); border-radius:16px; padding:14px 15px; cursor:pointer; display:flex; gap:12px; align-items:center; text-align:left; font-family:inherit; font-size:15px; font-weight:800; transition:transform .18s ease,border-color .18s ease,background .18s ease; }
.mm21-option span:nth-child(2) { flex:1; }
.mm21-option:hover,.mm21-option.selected { background:#eafbdc; border-color:#8dbb77; transform:translateY(-1px); }
.mm21-option:focus-visible { outline:4px solid #276baf; outline-offset:3px; }
.mm21-option-number { background:#fff0ca; border-radius:9px; min-width:29px; height:29px; display:grid; place-items:center; }
.mm21-feedback { min-height:8px; }
.mm21-insight { margin-top:18px; background:#e6f7e1; border:2px solid #a5d29b; border-radius:19px; padding:17px 20px; line-height:1.55; color:#244e2a; }
.mm21-insight p { margin:8px 0 0; }
.mm21-revisited { margin-top:12px; display:block; color:#477a54; font-weight:750; }
.mm21-research { line-height:1.55; }
.mm21-toolbar { margin-top:26px; margin-bottom:15px; }
.mm21-locknote { padding-top:7px; }
/* Custom illustrated medals and an accurately proportioned achievement meter. */
.mm21-badge-progress { margin-top:18px; }
.mm21-badges .v2-medal { display:flex; flex-direction:column; align-items:center; justify-content:flex-start; min-height:295px; }
.mm21-badge-img { display:block; width:118px; height:118px; margin:9px 0 12px; }
.mm21-badges .v2-medal .v2-pill { margin-top:auto; }
.mm21-badges .v2-medal.locked { opacity:.63; filter:grayscale(.85); }
/* Keep controls usable at laptop zoom levels and on small screens. */
@media(max-width:900px){.mm21-profile{grid-template-columns:1fr}.mm21-portrait{min-height:300px;flex-direction:row;gap:22px}.mm21-portrait img{width:200px}.hero-mascot img{clip-path:inset(0 0 26% 0)}}
@media(max-width:600px){.bottom-nav{width:100%; max-width:100%; margin:25px auto 10px; flex-wrap:wrap; gap:3px}.bottom-nav button{min-width:0}.mm21-portrait{flex-direction:column;gap:0}.mm21-portrait img{width:min(100%,250px)}.mm21-profile{padding:14px}.mm21-conversation{padding:16px}.mm21-toolbar .btn{width:100%}.mm21-profile-body .metric-row{flex-wrap:wrap}.hero-mascot{min-height:450px}.v2-fizz-caption{padding:11px;bottom:11px}}
@media(prefers-reduced-motion:reduce){.mm21-portrait img{animation:none}}
