/* Duel Pendekar Matematika v3.0 - touch-first 1v1 online arena. No external resources. */
body.mpd-standalone-body{margin:0!important;background:#091020!important;color:#f5f7ff!important;min-width:320px}
body.mpd-standalone-body .mpd-landing{min-height:100vh;padding:clamp(9px,1.8vw,20px);background:radial-gradient(ellipse at 50% -25%,#203665 0%,#0d1731 47%,#091020 92%);display:flex;flex-direction:column;align-items:center;gap:12px}
body.mpd-standalone-body .mpd-landing-inner{width:100%;max-width:1160px;min-width:0}
body.mpd-standalone-body .mpd-landing-footer{font:600 11px/1.6 system-ui,sans-serif;color:#8c9ab5;display:flex;gap:10px;flex-wrap:wrap;justify-content:center;text-align:center}
body.mpd-standalone-body .mpd-landing-footer a{color:#a9dcff;text-decoration:underline}
.mpdo-app{--bg:#0d152a;--panel:#111e39;--ink:#f8f9ff;--muted:#abbcd9;--line:#405579;--gold:#ffd080;--mint:#7fedce;--rose:#ff7c91;isolation:isolate;position:relative;min-height:520px;color:var(--ink);font:500 15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:normal;box-sizing:border-box}
.mpdo-app *,.mpdo-app *:before,.mpdo-app *:after{box-sizing:border-box}
.mpdo-app button,.mpdo-app input,.mpdo-app select{font:inherit}
.mpdo-app button{cursor:pointer;touch-action:manipulation}
.mpdo-app button:disabled{opacity:.53;cursor:not-allowed}
.mpdo-app :is(input,button,select):focus-visible{outline:3px solid #ffe38d;outline-offset:3px}
.mpdo-app h1,.mpdo-app h2,.mpdo-app h3,.mpdo-app p{margin:0}
.mpdo-app small{font-size:11px}
.mpdo-app :is([hidden]){display:none!important}
.mpdo-app .mpdo-wrap{max-width:1150px;margin:0 auto;overflow:hidden;background:linear-gradient(155deg,#152345 0%,#111c36 52%,#0e1931 100%);border:1px solid #374e77;border-radius:25px;box-shadow:0 24px 80px #02051177}
.mpdo-app .mpdo-top,.mpdo-app .mpdo-room-header{height:76px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px clamp(16px,2.5vw,34px);border-bottom:1px solid #3b4f72;background:#101c35;position:relative;z-index:2}
.mpdo-app .mpdo-mark{font-weight:1000;color:#fff;text-decoration:none;display:flex;align-items:center;gap:12px;line-height:1.05;font-size:18px;white-space:nowrap}
.mpdo-app .mpdo-mark>b{color:#fff}
.mpdo-app .mpdo-mark>span{display:block}
.mpdo-app .mpdo-mark>span>b{color:#ffd183}
.mpdo-app .mpdo-mark>span>small{font-size:10px;display:block;font-weight:800;color:#8fa9d7;letter-spacing:2px;margin-top:6px}
.mpdo-app .mpdo-top-pill{font-size:11px;color:#96f2d0;border-radius:999px;background:#1a3944;border:1px solid #297e6f;padding:9px 12px;font-weight:800;letter-spacing:.7px;white-space:nowrap}
.mpdo-app .mpdo-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.88fr);gap:12px;position:relative;min-height:290px;background:radial-gradient(ellipse at 83% 55%,#3b356c99,#151f3c 54%,#111a32 89%);overflow:hidden;border-bottom:1px solid #344565}
.mpdo-app .mpdo-hero-copy{padding:clamp(26px,4.3vw,56px) 16px clamp(22px,3.8vw,45px) clamp(20px,4vw,46px);z-index:2;position:relative}
.mpdo-app .mpdo-kicker{display:block;color:#91ffe0;font-size:11px;font-weight:1000;letter-spacing:1.9px;margin-bottom:14px}
.mpdo-app .mpdo-hero h1{color:#fff;font-size:clamp(29px,4.05vw,53px);line-height:1.12;letter-spacing:-1.6px;font-weight:1000;max-width:620px}
.mpdo-app .mpdo-hero h1 em{font-style:normal;color:#ffd080}
.mpdo-app .mpdo-hero-copy>p{margin-top:18px;color:#c5d2e8;max-width:540px;font-size:14px;line-height:1.65}
.mpdo-app .mpdo-hero-points{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.mpdo-app .mpdo-hero-points span{font-size:10px;background:#283c5d;border:1px solid #405b81;color:#edf5ff;border-radius:50px;padding:7px 11px;font-weight:850}
.mpdo-app .mpdo-hero-figs{position:relative;min-height:290px;display:flex;align-items:flex-end;justify-content:center;isolation:isolate}
.mpdo-app .mpdo-hero-fig{height:265px;width:43%;max-width:220px;filter:drop-shadow(0 15px 8px #03071ba9)}
.mpdo-app .mpdo-hero-fig .mpdo-art{width:100%;height:100%}
.mpdo-app .mpdo-hero-a{transform:translateX(10px) rotate(-3deg);animation:mpdo-idle 2.6s ease-in-out infinite}
.mpdo-app .mpdo-hero-b{transform:translateX(-10px) rotate(3deg);animation:mpdo-idle 2.6s ease-in-out -.9s infinite}
.mpdo-app .mpdo-hero-b .mpdo-art{transform:scaleX(-1)}
.mpdo-app .mpdo-vs-badge{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%) rotate(-8deg);font-size:30px;font-weight:1000;color:#fff0b8;text-shadow:0 0 19px #ff7333,0 5px 1px #9b4561;z-index:2;pointer-events:none}
.mpdo-app .mpdo-setup{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.7fr);gap:16px;padding:24px;align-items:start}
.mpdo-app .mpdo-panel{background:#162440;border-radius:17px;border:1px solid #40557a;box-shadow:0 8px 30px #03071255;overflow:hidden}
.mpdo-app .mpdo-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #425479;background:#101b34}
.mpdo-app .mpdo-tabs>button{min-height:58px;background:transparent;border:none;color:#9eacc8;font-weight:900;font-size:14px}
.mpdo-app .mpdo-tabs>button.active{background:#233858;color:#fff;border-bottom:3px solid #ffd180}
.mpdo-app .mpdo-panel form{padding:22px;display:flex;flex-direction:column;gap:17px}
.mpdo-app .mpdo-form-group>label,.mpdo-app .mpdo-settings label{display:block;color:#e7eefc;font-weight:850;font-size:12px;margin-bottom:8px}
.mpdo-app .mpdo-form-group>label small{color:#96a8c9;font-weight:600}
.mpdo-app .mpdo-form-group input,.mpdo-app .mpdo-settings select{width:100%;min-height:46px;background:#0f1b34;border:1px solid #51678d;color:#fff;border-radius:11px;padding:10px 12px;box-shadow:inset 0 2px 9px #050a1c44;outline-offset:2px}
.mpdo-app .mpdo-form-group input::placeholder{color:#8296bb}
.mpdo-app .mpdo-form-group input:focus,.mpdo-app .mpdo-settings select:focus{border-color:#ffd180}
.mpdo-app .mpdo-code-input{text-transform:uppercase;letter-spacing:4px;font-weight:900;font-size:19px!important}
.mpdo-app .mpdo-form-group h2{font-size:20px;font-weight:900}
.mpdo-app .mpdo-form-note{font-size:12px;color:#a3b5d2;margin-top:5px}
.mpdo-app .mpdo-character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.mpdo-app .mpdo-character-card{min-width:0;min-height:143px;display:flex;flex-direction:column;align-items:center;gap:4px;justify-content:center;border-radius:12px;border:1px solid #405879;background:linear-gradient(#1e304e,#172641);color:#fff;transition:transform .16s,border-color .16s,background .16s;padding:9px 4px}
.mpdo-app .mpdo-character-card:hover{transform:translateY(-2px);border-color:#8babdf}
.mpdo-app .mpdo-character-card.selected{border:2px solid #ffd07b;background:linear-gradient(#40557b,#29334c);box-shadow:0 0 18px #edba7433}
.mpdo-app .mpdo-character-mini{height:82px;width:78px;display:block}
.mpdo-app .mpdo-character-mini .mpdo-art{height:100%;width:100%}
.mpdo-app .mpdo-character-card strong{font-size:11px;font-weight:900;line-height:1.3;text-align:center}
.mpdo-app .mpdo-character-card small{font-size:9px;color:#aabddd;text-align:center}
.mpdo-app .mpdo-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mpdo-app .mpdo-settings label{margin:0}
.mpdo-app .mpdo-settings select{margin-top:7px;font-size:11px;font-weight:750;padding:6px 7px}
.mpdo-app .mpdo-main-button{display:block;width:100%;min-height:55px;padding:13px 15px;border-radius:12px;background:linear-gradient(100deg,#ffd57f,#ff9e6f);color:#2c1730;border:1px solid #ffe9ab;box-shadow:0 5px 0 #87535c;font-size:14px;font-weight:1000;letter-spacing:.6px;text-align:center}
.mpdo-app .mpdo-main-button:hover:not(:disabled){filter:brightness(1.08)}
.mpdo-app .mpdo-main-button:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 #87535c}
.mpdo-app .mpdo-alert{font-size:12px;font-weight:800;background:#213650;color:#92e8c9;border-radius:8px;padding:10px 12px}
.mpdo-app .mpdo-alert.mpdo-error,.mpdo-app .mpdo-room-notice.mpdo-error{color:#ffb6b6;background:#57313d;border:1px solid #a65666}
.mpdo-app .mpdo-how{border:1px solid #3b5278;background:#15233e;padding:20px 18px;border-radius:15px}
.mpdo-app .mpdo-how h3{color:#ffd080;letter-spacing:1.2px;font-weight:1000;font-size:14px;margin-bottom:18px}
.mpdo-app .mpdo-how>div{display:flex;gap:12px;margin-bottom:23px;align-items:flex-start}
.mpdo-app .mpdo-how>div>b{width:36px;min-width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#293e5f;color:#ffdc99;font-size:14px;font-weight:1000}
.mpdo-app .mpdo-how>div>p{display:flex;flex-direction:column;gap:5px}
.mpdo-app .mpdo-how>div strong{color:#fff;font-size:13px;font-weight:900}
.mpdo-app .mpdo-how>div span{color:#b1c0dc;font-size:12px;line-height:1.6}
.mpdo-app .mpdo-local-link{display:block;background:#21395b;color:#ddf3ff!important;text-decoration:none;border:1px solid #526d98;padding:12px 11px;border-radius:10px;font-size:12px;font-weight:800;line-height:1.5}
.mpdo-app .mpdo-local-link:hover{background:#314870}
.mpdo-app .mpdo-how-note{font-size:11px;color:#90a3c5;margin-top:13px}
.mpdo-app .mpdo-copyright{padding:15px 10px;border-top:1px solid #314264;text-align:center;letter-spacing:1.3px;font-size:9px;color:#7990b9;font-weight:850}
/* Online room */
.mpdo-app .mpdo-in-room{max-width:1100px}
.mpdo-app .mpdo-room-header{height:67px}
.mpdo-app .mpdo-room-status{display:flex;gap:9px;align-items:center}
.mpdo-app .mpdo-room-status span{color:#8ef3b4;background:#1d3d46;border-radius:99px;padding:6px 10px;border:1px solid #396b67;font-size:10px;font-weight:900;white-space:nowrap}
.mpdo-app .mpdo-room-status span.mpdo-offline{color:#ffd293;border-color:#9d6b46}
.mpdo-app .mpdo-room-status button{border:1px solid #546b96;background:#273c5d;border-radius:9px;color:#fff;padding:7px 12px;min-height:34px;font-size:11px;font-weight:850}
.mpdo-app .mpdo-room-code-line{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 24px;border-bottom:1px solid #3a4c6e;background:#0e1930}
.mpdo-app .mpdo-room-code-line>div{display:flex;align-items:center;gap:8px}
.mpdo-app .mpdo-room-code-line small{font-size:9px;color:#9baac8;font-weight:900;letter-spacing:1px}
.mpdo-app .mpdo-room-code-line b{font-size:20px;letter-spacing:4px;color:#ffda93;font-weight:1000}
.mpdo-app .mpdo-room-code-line button{font-size:19px;background:none;border:none;color:#b6d7ff;padding:2px 5px}
.mpdo-app .mpdo-room-code-line>span{background:#253b57;border:1px solid #3c597a;color:#b5e4d5;font-size:10px;padding:6px 9px;border-radius:7px;font-weight:900;white-space:nowrap}
.mpdo-app .mpdo-stage{height:320px;position:relative;background:radial-gradient(ellipse at 50% 95%,#364d82 0,#1a2e54 42%,#101b39 87%);isolation:isolate;overflow:hidden}
.mpdo-app .mpdo-stars{position:absolute;inset:0;opacity:.55;background-image:radial-gradient(#dcf2ff 1px,transparent 1.4px),radial-gradient(#ffdcbe 1px,transparent 1.6px);background-size:113px 89px,185px 131px;background-position:8px 14px,40px 51px}
.mpdo-app .mpdo-moon{position:absolute;left:50%;top:55px;width:106px;height:106px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle at 34% 30%,#fffde9,#edd4a1);box-shadow:0 0 45px #f9f6cd77,0 0 105px #f9f6cd22}
.mpdo-app .mpdo-mountains{position:absolute;bottom:31px;left:0;right:0;height:190px;background:#0a1a37;opacity:.79;clip-path:polygon(0 80%,9% 53%,20% 82%,32% 30%,42% 77%,52% 49%,66% 85%,78% 28%,90% 74%,100% 42%,100% 100%,0 100%)}
.mpdo-app .mpdo-torii{position:absolute;bottom:48px;left:calc(50% - 61px);width:123px;height:132px;opacity:.4;border-left:10px solid #090f2b;border-right:10px solid #090f2b}
.mpdo-app .mpdo-torii:before{content:'';position:absolute;left:-32px;right:-32px;top:2px;height:13px;border-radius:8px;background:#060f26;box-shadow:0 -15px 0 -4px #070e28}
.mpdo-app .mpdo-torii:after{content:'';position:absolute;left:-14px;right:-14px;top:28px;height:10px;background:#070e28}
.mpdo-app .mpdo-mist{position:absolute;inset:auto -30% 25px;height:70px;background:linear-gradient(transparent,#b5d0ff1f,transparent);filter:blur(11px);animation:mpdo-drift 15s ease-in-out infinite}
.mpdo-app .mpdo-stage-top{position:absolute;left:14px;right:14px;top:11px;z-index:5;display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);align-items:start;gap:12px}
.mpdo-app .mpdo-health{min-width:0}
.mpdo-app .mpdo-health>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;font-weight:1000;text-shadow:0 2px 4px #000}
.mpdo-app .mpdo-health>div:first-child>b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mpdo-app .mpdo-health>div:first-child>span{font-size:10px;white-space:nowrap;color:#ebf0ff}
.mpdo-app .mpdo-hp-track{height:18px;margin-top:7px;border:2px solid #dae6ffbb;background:#161a31;border-radius:99px;overflow:hidden;box-shadow:0 5px 10px #070b1b66}
.mpdo-app .mpdo-hp-track i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#b3284e,#ed587c,#ffb488);border-radius:99px;transition:width .3s ease}
.mpdo-app .mpdo-health--right .mpdo-hp-track i{background:linear-gradient(90deg,#2679be,#60b6f8,#c3fcdf)}
.mpdo-app .mpdo-stage-center{text-align:center;font-weight:1000;font-size:25px;line-height:1;color:#ffda8d;text-shadow:0 2px 3px #9d4754,0 0 14px #ffab4a}
.mpdo-app .mpdo-stage-center span{display:block;color:#fff;font-size:13px;margin-top:4px;text-shadow:0 0 6px #000}
.mpdo-app .mpdo-ground{position:absolute;left:0;right:0;bottom:0;height:44px;border-top:4px solid #967b65;background:repeating-linear-gradient(101deg,#363649 0px 45px,#414153 45px 49px);box-shadow:inset 0 14px 14px #0b0f20a6}
.mpdo-app .mpdo-fighter{position:absolute;bottom:31px;width:188px;height:225px;z-index:3;filter:drop-shadow(0 10px 10px #060a20aa);transform-origin:50% 92%;animation:mpdo-idle 2.6s ease-in-out infinite}
.mpdo-app .mpdo-fighter>div:first-child{height:100%;width:100%}
.mpdo-app .mpdo-fighter-left{left:calc(50% - 228px)}
.mpdo-app .mpdo-fighter-right{right:calc(50% - 228px);animation-delay:-1s}
.mpdo-app .mpdo-fighter-right .mpdo-art{transform:scaleX(-1)}
.mpdo-app .mpdo-fighter .mpdo-art{width:100%;height:100%;filter:drop-shadow(0 0 5px var(--fighter-glow,#fff4))}
.mpdo-app .mpdo-sword-arm{transform-origin:140px 146px}
.mpdo-app .mpdo-fighter.mpdo-attack .mpdo-sword-arm{animation:mpdo-swing .6s ease both}
.mpdo-app .mpdo-fighter-left.mpdo-attack{animation:mpdo-lunge-left .6s ease-out both}
.mpdo-app .mpdo-fighter-right.mpdo-attack{animation:mpdo-lunge-right .6s ease-out both}
.mpdo-app .mpdo-fighter.mpdo-hurt{animation:mpdo-hurt .2s linear 3;filter:brightness(1.6) drop-shadow(0 0 19px #ffdfc0)}
.mpdo-app .mpdo-fighter.mpdo-special .mpdo-art{filter:drop-shadow(0 0 18px #ffc461) drop-shadow(0 0 24px var(--fighter-glow))}
.mpdo-app .mpdo-figure-shadow{position:absolute;width:95px;height:11px;bottom:-5px;left:50%;transform:translateX(-50%);border-radius:50%;background:#02051155;filter:blur(4px)}
.mpdo-app .mpdo-unknown-fighter{font-size:85px;font-weight:1000;color:#506080;text-align:center;padding-top:55px}
.mpdo-app .mpdo-impact{position:absolute;z-index:6;left:50%;top:140px;opacity:0;pointer-events:none;transform:translateX(-50%);color:#ffe89e;font-size:100px;font-weight:1000;text-shadow:0 0 25px #fff}
.mpdo-app .mpdo-impact.mpdo-impact-on{animation:mpdo-impact .7s ease-out both}
.mpdo-app .mpdo-impact.mpdo-special{color:#fff;font-size:130px;text-shadow:0 0 35px #ff8daa,0 0 56px #ffe788}
.mpdo-app .mpdo-swipe{position:absolute;left:42%;top:34%;z-index:6;width:190px;height:130px;border:15px solid var(--slash-color,#ffca75);border-radius:50%;border-top-color:transparent;border-left-color:transparent;transform:rotate(-20deg) scale(.2);opacity:0;filter:drop-shadow(0 0 14px var(--slash-color));pointer-events:none}
.mpdo-app .mpdo-swipe.mpdo-swipe-on{animation:mpdo-slash .7s ease-out both}
.mpdo-app .mpdo-swipe.mpdo-special{border-width:24px;width:235px;height:170px}
.mpdo-app .mpdo-combat-message{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);z-index:8;border:1px solid #5c779a;background:#0b162dcc;border-radius:25px;max-width:92%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;padding:7px 15px;font-size:11px;font-weight:900;box-shadow:0 3px 12px #0007}
.mpdo-app .mpdo-banner{background:linear-gradient(100deg,#492c65,#744662,#482a67);border-top:1px solid var(--special-color,#ffc178);border-bottom:1px solid var(--special-color,#ffc178);color:#fff;font-weight:1000;text-align:center;font-size:clamp(16px,2.5vw,27px);letter-spacing:1px;padding:10px;box-shadow:0 0 38px var(--special-color,#ffd28a)55;animation:mpdo-banner .35s ease both}
.mpdo-app .mpdo-wait,.mpdo-app .mpdo-finish{text-align:center;padding:27px clamp(14px,4vw,30px) 32px;background:#121f39}
.mpdo-app .mpdo-wait-badge{display:inline-block;border-radius:30px;padding:7px 15px;border:1px solid #6c6597;background:#33395f;color:#ffe2a5;font-weight:900;font-size:11px;letter-spacing:1.4px;margin-bottom:13px}
.mpdo-app .mpdo-wait h2,.mpdo-app .mpdo-finish h2{font-size:clamp(21px,3vw,30px);font-weight:1000;color:#fff}
.mpdo-app .mpdo-wait>p,.mpdo-app .mpdo-finish>p{margin:9px auto 16px;max-width:620px;font-size:13px;color:#b6c4df;line-height:1.65}
.mpdo-app .mpdo-invite{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.mpdo-app .mpdo-invite button{min-height:43px;padding:10px 12px;background:#283c60;border:1px solid #627ca5;color:#eef5ff;border-radius:10px;font-size:12px;font-weight:850}
.mpdo-app .mpdo-wait .mpdo-main-button,.mpdo-app .mpdo-finish .mpdo-main-button{max-width:430px;margin:auto}
.mpdo-app .mpdo-wait-note,.mpdo-app .mpdo-finish small{font-size:11px;color:#96a9c9;margin-top:14px;display:block}
.mpdo-app .mpdo-play{background:#101b34;padding:18px 20px 28px;max-width:100%}
.mpdo-app .mpdo-play-top{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#f7f7ff;font-size:13px;font-weight:1000}
.mpdo-app .mpdo-play-top>strong{color:#ffda8c;border:1px solid #ab8557;background:#3a3545;padding:6px 12px;border-radius:999px;font-size:10px;white-space:nowrap}
.mpdo-app .mpdo-streak-info{display:flex;align-items:center;gap:9px;color:#bac8df;font-size:12px;margin:11px 0 2px}
.mpdo-app .mpdo-dots{display:flex;gap:5px}
.mpdo-app .mpdo-dots i{width:10px;height:10px;background:#53647e;border-radius:50%}
.mpdo-app .mpdo-dots i.on{background:#ffd080;box-shadow:0 0 9px #ffd080aa}
.mpdo-app .mpdo-question{text-align:center;margin:11px auto 18px;padding:16px 7px;background:linear-gradient(110deg,#263b62,#192c50);border:1px solid #496391;border-radius:16px;font-size:clamp(25px,5vw,42px);font-weight:1000;color:#fff;min-height:88px;display:flex;justify-content:center;align-items:center;font-variant-numeric:tabular-nums;text-shadow:0 3px 12px #080e2240}
.mpdo-app .mpdo-answers{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:800px;margin:auto}
.mpdo-app .mpdo-answers button{min-width:0;min-height:84px;border-radius:14px;color:#fff;border:1px solid #667fac;background:linear-gradient(170deg,#334a75,#243a60);box-shadow:inset 0 -5px 0 #06142a33;display:flex;align-items:center;gap:12px;padding:13px;font-size:clamp(18px,3vw,28px);transition:transform .1s,filter .1s}
.mpdo-app .mpdo-answers button:hover:not(:disabled){filter:brightness(1.12)}
.mpdo-app .mpdo-answers button:active:not(:disabled){transform:scale(.98)}
.mpdo-app .mpdo-answers button.mpdo-chosen{border-color:#ffda8c;background:#51617c}
.mpdo-app .mpdo-answers button>span{width:41px;height:41px;min-width:41px;display:grid;place-items:center;background:#121f3b;border:1px solid #91a7d2;border-radius:12px;font-weight:1000;font-size:20px}
.mpdo-app .mpdo-answers button>b{flex:1;text-align:center;font-weight:1000;font-variant-numeric:tabular-nums}
.mpdo-app .mpdo-quiz-feedback{text-align:center;min-height:24px;padding:12px 3px 0;color:#89f3c2;font-size:12px;font-weight:850}
.mpdo-app .mpdo-quiz-feedback.mpdo-answer-wrong{color:#ffadb3}
.mpdo-app .mpdo-finish>span{font-size:55px}
.mpdo-app .mpdo-finish>h2{color:#ffdf9d;margin:5px 0}
.mpdo-app .mpdo-room-foot{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:center;background:#0d182e;border-top:1px solid #31435f;padding:12px 10px;color:#a5b6d5;font-weight:850;font-size:10px}
.mpdo-app .mpdo-room-notice{margin:10px auto;padding:10px 15px;max-width:640px;text-align:center;background:#254054;color:#bdf6d6;border:1px solid #5c9985;border-radius:9px;font-size:11px}
.mpdo-app.mpdo-screen-shake{animation:mpdo-shake .3s linear 2}
.mpdo-app:fullscreen{overflow:auto;background:#0b1429;padding:10px;height:100vh}
.mpdo-app:fullscreen .mpdo-wrap{max-width:1300px}
@keyframes mpdo-idle{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes mpdo-lunge-left{0%,100%{transform:translateX(0)}45%{transform:translateX(95px) scale(1.08)}}
@keyframes mpdo-lunge-right{0%,100%{transform:translateX(0)}45%{transform:translateX(-95px) scale(1.08)}}
@keyframes mpdo-hurt{0%,100%{transform:translateX(0)}50%{transform:translateX(10px)}}
@keyframes mpdo-swing{0%{transform:rotate(-25deg)}50%{transform:rotate(47deg)}100%{transform:rotate(0)}}
@keyframes mpdo-impact{0%{opacity:0;transform:translateX(-50%) rotate(0) scale(.1)}35%{opacity:1;transform:translateX(-50%) rotate(24deg) scale(1.1)}100%{opacity:0;transform:translateX(-50%) rotate(80deg) scale(1.7)}}
@keyframes mpdo-slash{0%{opacity:0;transform:rotate(-45deg) scale(.1)}40%{opacity:1;transform:rotate(30deg) scale(1)}100%{opacity:0;transform:rotate(75deg) scale(1.5)}}
@keyframes mpdo-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@keyframes mpdo-banner{0%{opacity:0;transform:scaleY(.5)}100%{opacity:1;transform:scaleY(1)}}
@keyframes mpdo-drift{0%,100%{transform:translateX(-8%)}50%{transform:translateX(8%)}}
@media(max-width:780px){.mpdo-app .mpdo-hero{grid-template-columns:1fr}.mpdo-app .mpdo-hero-copy{padding-bottom:0}.mpdo-app .mpdo-hero h1{max-width:650px}.mpdo-app .mpdo-hero-figs{min-height:182px;margin-top:-10px}.mpdo-app .mpdo-hero-fig{height:205px;width:155px}.mpdo-app .mpdo-setup{grid-template-columns:1fr;gap:13px;padding:14px}.mpdo-app .mpdo-how>div{margin-bottom:14px}}
@media(max-width:530px){.mpdo-app .mpdo-wrap{border-radius:14px}.mpdo-app .mpdo-mark{font-size:13px;gap:6px}.mpdo-app .mpdo-mark>span>small{font-size:7px;letter-spacing:1.1px}.mpdo-app .mpdo-top{height:64px;padding:10px 12px}.mpdo-app .mpdo-top-pill{font-size:9px;padding:7px 9px}.mpdo-app .mpdo-hero-copy{padding:26px 19px 0}.mpdo-app .mpdo-hero h1{font-size:33px;letter-spacing:-.8px}.mpdo-app .mpdo-hero-copy>p{font-size:12px}.mpdo-app .mpdo-hero-points span{font-size:9px}.mpdo-app .mpdo-hero-figs{min-height:175px}.mpdo-app .mpdo-hero-fig{height:185px;width:140px}.mpdo-app .mpdo-setup{padding:9px}.mpdo-app .mpdo-panel form{padding:13px;gap:14px}.mpdo-app .mpdo-character-grid{gap:5px}.mpdo-app .mpdo-character-card{min-height:120px;padding:7px 2px}.mpdo-app .mpdo-character-mini{height:70px;width:64px}.mpdo-app .mpdo-character-card strong{font-size:9px}.mpdo-app .mpdo-character-card small{font-size:8px}.mpdo-app .mpdo-settings{grid-template-columns:1fr 1fr}.mpdo-app .mpdo-settings label:last-child{grid-column:span 2}.mpdo-app .mpdo-settings select{margin-top:4px}.mpdo-app .mpdo-room-header{height:63px;padding:9px 11px}.mpdo-app .mpdo-room-status{gap:5px}.mpdo-app .mpdo-room-status span{font-size:9px;padding:4px 7px}.mpdo-app .mpdo-room-status button{padding:5px 7px;font-size:10px;min-height:31px}.mpdo-app .mpdo-room-code-line{padding:9px 11px}.mpdo-app .mpdo-room-code-line small{font-size:8px}.mpdo-app .mpdo-room-code-line b{font-size:16px;letter-spacing:2px}.mpdo-app .mpdo-room-code-line>span{font-size:8px;letter-spacing:0;padding:5px 6px}.mpdo-app .mpdo-stage{height:270px}.mpdo-app .mpdo-stage-top{grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr);gap:5px;left:8px;right:8px}.mpdo-app .mpdo-health>div:first-child{display:flex;flex-wrap:wrap;gap:0;font-size:10px}.mpdo-app .mpdo-health>div:first-child>b{width:100%;max-width:100%}.mpdo-app .mpdo-health>div:first-child>span{font-size:9px}.mpdo-app .mpdo-stage-center{font-size:18px}.mpdo-app .mpdo-stage-center span{font-size:10px}.mpdo-app .mpdo-fighter{width:130px;height:158px;bottom:30px}.mpdo-app .mpdo-fighter-left{left:calc(50% - 145px)}.mpdo-app .mpdo-fighter-right{right:calc(50% - 145px)}.mpdo-app .mpdo-moon{width:82px;height:82px;top:73px}.mpdo-app .mpdo-mountains{height:145px}.mpdo-app .mpdo-torii{height:106px;width:90px;left:calc(50% - 45px)}.mpdo-app .mpdo-combat-message{font-size:9px;padding:6px 9px}.mpdo-app .mpdo-swipe{width:110px;height:80px;border-width:9px}.mpdo-app .mpdo-swipe.mpdo-special{width:170px;height:105px;border-width:18px}.mpdo-app .mpdo-impact{font-size:72px;top:143px}.mpdo-app .mpdo-play{padding:15px 11px 20px}.mpdo-app .mpdo-play-top{font-size:11px}.mpdo-app .mpdo-question{font-size:30px;min-height:82px;margin:9px auto 14px}.mpdo-app .mpdo-answers{gap:8px}.mpdo-app .mpdo-answers button{min-height:77px;padding:8px;gap:7px}.mpdo-app .mpdo-answers button>span{width:33px;min-width:33px;height:37px;border-radius:9px;font-size:16px}.mpdo-app .mpdo-answers button>b{font-size:25px}.mpdo-app .mpdo-quiz-feedback{font-size:11px}}
@media(max-width:350px){.mpdo-app .mpdo-character-grid{grid-template-columns:repeat(2,1fr)}.mpdo-app .mpdo-room-code-line small{display:none}.mpdo-app .mpdo-room-status span{display:none}}
@media(prefers-reduced-motion:reduce){.mpdo-app *{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* Spectator arena: battle-only full display. */
.mpdo-app.mpdo-board .mpdo-play{display:none!important}
.mpdo-app.mpdo-board .mpdo-stage{height:clamp(320px,64vh,575px)}
.mpdo-app.mpdo-board .mpdo-fighter{height:clamp(210px,36vh,330px);width:clamp(180px,29vw,276px)}
.mpdo-app.mpdo-board .mpdo-fighter-left{left:calc(50% - min(30vw,310px))}
.mpdo-app.mpdo-board .mpdo-fighter-right{right:calc(50% - min(30vw,310px))}
@media(max-width:530px){.mpdo-app.mpdo-board .mpdo-fighter{width:135px;height:178px}.mpdo-app.mpdo-board .mpdo-fighter-left{left:calc(50% - 145px)}.mpdo-app.mpdo-board .mpdo-fighter-right{right:calc(50% - 145px)}}

/* v4: cinematic battle, character details, bot selection, native-speech sound controls */
.mpdo-app .mpdo-mode-select{padding:13px;border:1px solid #617baf;border-radius:13px;background:linear-gradient(110deg,#273b5d,#1a3154)}
.mpdo-app .mpdo-mode-select>label,.mpdo-app .mpdo-bot-config>label{display:block;color:#e8f4ff;font-weight:900;font-size:12px;margin-bottom:7px}
.mpdo-app .mpdo-mode-select select{display:block;width:100%;min-height:45px;border:1px solid #7c98c0;border-radius:10px;background:#101f3f;color:#fff;font-weight:850;padding:7px 10px}
.mpdo-app .mpdo-bot-config{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}
.mpdo-app .mpdo-bot-config[hidden]{display:none!important}
.mpdo-app .mpdo-bot-config>label{min-width:0}
.mpdo-app .mpdo-bot-config select{font-size:11px;margin-top:7px;min-height:43px}
.mpdo-app .mpdo-room-status button[data-action=sound]{color:#ffda98;background:linear-gradient(110deg,#465077,#2c4264);white-space:nowrap}
.mpdo-app .mpdo-clouds{position:absolute;inset:20% -30% auto;height:100px;opacity:.4;filter:blur(20px);background:radial-gradient(ellipse at 20% 80%,#84b5f744,transparent 40%),radial-gradient(ellipse at 70% 20%,#ffe6ab27,transparent 37%);animation:mpdo-cloud-drift 19s ease-in-out infinite alternate;pointer-events:none}
.mpdo-app .mpdo-fireflies{position:absolute;inset:0;opacity:.6;pointer-events:none;background-image:radial-gradient(circle,#c3f9ef 1.4px,transparent 2px),radial-gradient(circle,#ffdc83 1.2px,transparent 2px),radial-gradient(circle,#9cafff 1.8px,transparent 2px);background-size:67px 90px,110px 80px,93px 123px;background-position:19px 17px,11px 33px,70px 12px;animation:mpdo-firefly 6s ease-in-out infinite alternate}
.mpdo-app .mpdo-stage:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#07102166 0%,transparent 25%,transparent 75%,#07102166 100%)}
.mpdo-app .mpdo-stage:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:7;opacity:0;background:radial-gradient(ellipse at center,#fff9e2dd,#a7e6ff44 35%,transparent 68%)}
.mpdo-app .mpdo-stage.mpdo-stage-hit:after{animation:mpdo-flash .36s ease-out both}
.mpdo-app .mpdo-stage.mpdo-stage-ultimate:after{animation:mpdo-flash-special 1.2s ease-out both}
.mpdo-app .mpdo-fighter{will-change:transform;animation:mpdo-fighter-breathe 2.9s ease-in-out infinite alternate}
.mpdo-app .mpdo-fighter-right{animation-delay:-1.45s}
.mpdo-app .mpdo-fighter .mpdo-art{animation:mpdo-art-glint 3.8s ease-in-out infinite alternate}
.mpdo-app .mpdo-fighter .mpdo-sword-arm{animation:mpdo-sword-idle 3.9s ease-in-out infinite;transform-origin:140px 146px}
.mpdo-app .mpdo-fighter.mpdo-attack .mpdo-sword-arm{animation:mpdo-swing-rev .7s cubic-bezier(.12,.9,.18,1) both}
.mpdo-app .mpdo-fighter.mpdo-special .mpdo-sword-arm{animation:mpdo-swing-ultimate 1.1s cubic-bezier(.13,.87,.36,1) both}
.mpdo-app .mpdo-fighter-left.mpdo-attack{animation:mpdo-lunge-left-v4 .85s cubic-bezier(.18,.84,.24,1) both}
.mpdo-app .mpdo-fighter-right.mpdo-attack{animation:mpdo-lunge-right-v4 .85s cubic-bezier(.18,.84,.24,1) both}
.mpdo-app .mpdo-fighter.mpdo-hurt{animation:mpdo-hurt-v4 .16s linear 5;filter:brightness(1.9) drop-shadow(0 0 16px #ffee99)}
.mpdo-app .mpdo-fighter.mpdo-miss{animation:mpdo-miss .43s ease-out}
.mpdo-app .mpdo-fighter.mpdo-victory{animation:mpdo-victory 1.25s ease-in-out infinite alternate}
.mpdo-app .mpdo-fighter.mpdo-defeat{animation:mpdo-defeat 1.2s ease-out both;filter:grayscale(.7) brightness(.6)}
.mpdo-app .mpdo-battle-energy{position:absolute;pointer-events:none;z-index:4;inset:12% 19%;border-radius:50%;opacity:0;border:14px double #fcebc0;box-shadow:inset 0 0 55px #ffc46e99,0 0 55px #e38bffbb;transform:scale(.04)}
.mpdo-app .mpdo-battle-energy.mpdo-energy-on{animation:mpdo-energy-cast 1.7s cubic-bezier(.2,.7,.3,1) both}
.mpdo-app .mpdo-battle-energy:after{content:"✦";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:80px;color:#f2f9ff;text-shadow:0 0 23px white}
.mpdo-app .mpdo-ground-shock{position:absolute;z-index:5;pointer-events:none;left:50%;bottom:17px;width:45px;height:19px;border:5px solid #fff5bf;border-radius:50%;transform:translateX(-50%) scale(.1);opacity:0;box-shadow:0 0 15px #f7bd72}
.mpdo-app .mpdo-ground-shock.mpdo-shock-on{animation:mpdo-ground-pulse .7s ease-out both}
.mpdo-app .mpdo-particles{position:absolute;pointer-events:none;inset:0;z-index:8;overflow:hidden}
.mpdo-app .mpdo-spark{position:absolute;width:5px;height:12px;border-radius:50%;background:var(--pcolor,#fff);box-shadow:0 0 7px 2px var(--pcolor,#fff);opacity:0;animation:mpdo-particle .9s ease-out forwards;transform:rotate(35deg)}
.mpdo-app .mpdo-damage-pop{position:absolute;top:41%;left:65%;pointer-events:none;z-index:10;color:#fff3a4;font-size:clamp(22px,5vw,38px);font-weight:1000;opacity:0;text-shadow:0 2px 0 #bd4141,0 0 17px #ff8686}
.mpdo-app .mpdo-damage-pop.mpdo-damage-on{animation:mpdo-pop-damage .8s cubic-bezier(.11,.79,.31,1) both}
.mpdo-app .mpdo-banner{position:relative;z-index:11;min-height:85px;display:flex;flex-direction:column;justify-content:center;gap:3px;letter-spacing:0;overflow:hidden;background:radial-gradient(ellipse at center,#665d93,#302552 68%,#1a1739);border-top:2px solid var(--special-color,#ffc178);border-bottom:2px solid var(--special-color,#ffc178);animation:mpdo-banner-v4 .45s cubic-bezier(.1,1.2,.3,1) both}
.mpdo-app .mpdo-banner[hidden]{display:none!important}
.mpdo-app .mpdo-banner small{font-size:10px;letter-spacing:3px;color:#f8e6a5}
.mpdo-app .mpdo-banner strong{font-size:clamp(18px,4vw,29px);font-weight:1000;color:#fff;text-shadow:0 0 17px var(--special-color)}
.mpdo-app .mpdo-banner span{font-size:10px;color:#dbf7ff;letter-spacing:1.8px}
.mpdo-app .mpdo-banner:before,.mpdo-app .mpdo-banner:after{content:"";position:absolute;top:0;bottom:0;width:25%;opacity:.6;background:repeating-linear-gradient(125deg,transparent 0 10px,var(--special-color,#ffdf8b) 12px 14px,transparent 18px 28px);animation:mpdo-energy-lines 1.1s ease-out infinite alternate}
.mpdo-app .mpdo-banner:before{left:0}.mpdo-app .mpdo-banner:after{right:0;transform:scaleX(-1)}
.mpdo-app .mpdo-answers button:not(:disabled):active{box-shadow:0 0 20px #a1cbff88,inset 0 -1px 0 #06142a33}
.mpdo-app .mpdo-invite[hidden]{display:none!important}
@keyframes mpdo-fighter-breathe{0%{transform:translateY(0) rotate(-1deg)}55%{transform:translateY(-5px) rotate(.7deg)}100%{transform:translateY(-10px) rotate(-.6deg)}}
@keyframes mpdo-sword-idle{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(6deg)}}
@keyframes mpdo-art-glint{0%,100%{filter:drop-shadow(0 0 4px #b7dafa55)}50%{filter:drop-shadow(0 0 8px #fff3b966)}}
@keyframes mpdo-lunge-left-v4{0%{transform:translate(0,0) scale(1)}14%{transform:translate(-18px,8px) scale(.96)}48%{transform:translate(115px,-30px) scale(1.12)}64%{transform:translate(123px,-12px) scale(1.02)}100%{transform:translate(0,0) scale(1)}}
@keyframes mpdo-lunge-right-v4{0%{transform:translate(0,0) scale(1)}14%{transform:translate(18px,8px) scale(.96)}48%{transform:translate(-115px,-30px) scale(1.12)}64%{transform:translate(-123px,-12px) scale(1.02)}100%{transform:translate(0,0) scale(1)}}
@keyframes mpdo-swing-rev{0%{transform:rotate(-30deg)}32%{transform:rotate(-87deg)}53%{transform:rotate(78deg)}100%{transform:rotate(0deg)}}
@keyframes mpdo-swing-ultimate{0%{transform:rotate(-54deg)}28%{transform:rotate(-125deg)}62%{transform:rotate(143deg)}83%{transform:rotate(-40deg)}100%{transform:rotate(0)}}
@keyframes mpdo-hurt-v4{0%,100%{transform:translateX(0) rotate(0)}50%{transform:translateX(14px) rotate(9deg)}}
@keyframes mpdo-miss{0%,100%{filter:brightness(1)}50%{filter:brightness(.65);transform:translateY(6px)}}
@keyframes mpdo-victory{0%{transform:translateY(-2px) rotate(-4deg)}100%{transform:translateY(-21px) rotate(4deg);filter:drop-shadow(0 0 23px #ffd693)}}
@keyframes mpdo-defeat{0%{transform:rotate(0) translateY(0);opacity:1}100%{transform:rotate(73deg) translate(15px,46px);opacity:.75}}
@keyframes mpdo-cloud-drift{from{transform:translateX(-10%)}to{transform:translateX(10%)}}
@keyframes mpdo-firefly{from{opacity:.18;background-position:19px 17px,11px 33px,70px 12px}to{opacity:.8;background-position:19px -17px,35px 60px,70px 45px}}
@keyframes mpdo-flash{0%{opacity:0}18%{opacity:.6}100%{opacity:0}}
@keyframes mpdo-flash-special{0%{opacity:0}18%{opacity:.95}48%{opacity:.1}62%{opacity:.8}100%{opacity:0}}
@keyframes mpdo-energy-cast{0%{opacity:0;transform:scale(.08) rotate(-55deg)}23%{opacity:.95}67%{opacity:.8;transform:scale(1.2) rotate(25deg)}100%{opacity:0;transform:scale(2.1) rotate(95deg)}}
@keyframes mpdo-ground-pulse{0%{opacity:.85;transform:translateX(-50%) scale(.1)}100%{opacity:0;transform:translateX(-50%) scale(11)}}
@keyframes mpdo-particle{0%{opacity:1;transform:translate(0,0) scale(1) rotate(0)}100%{opacity:0;transform:translate(var(--px),var(--py)) scale(.1) rotate(260deg)}}
@keyframes mpdo-pop-damage{0%{opacity:0;transform:scale(.4) translateY(25px)}26%{opacity:1;transform:scale(1.25) translateY(-9px)}100%{opacity:0;transform:scale(.9) translateY(-70px)}}
@keyframes mpdo-banner-v4{0%{opacity:0;transform:scaleY(.1) skew(-7deg)}75%{opacity:1;transform:scaleY(1.12) skew(0)}100%{opacity:1;transform:scaleY(1)}}
@keyframes mpdo-energy-lines{from{opacity:.1;background-position:-70px 0}to{opacity:.65;background-position:30px 0}}
@media(max-width:530px){.mpdo-app .mpdo-bot-config{grid-template-columns:1fr}.mpdo-app .mpdo-room-status button[data-action=sound]{font-size:10px;min-height:36px;padding:5px 7px}.mpdo-app .mpdo-battle-energy{inset:30% 17%}.mpdo-app .mpdo-damage-pop{font-size:25px}.mpdo-app .mpdo-banner{min-height:78px}.mpdo-app .mpdo-banner small{letter-spacing:1.6px}.mpdo-app .mpdo-banner strong{font-size:17px}}
@media(prefers-reduced-motion:reduce){.mpdo-app .mpdo-clouds,.mpdo-app .mpdo-fireflies,.mpdo-app .mpdo-fighter,.mpdo-app .mpdo-fighter .mpdo-art,.mpdo-app .mpdo-fighter .mpdo-sword-arm{animation:none!important}}

.mpdo-app .mpdo-room-code-line[hidden]{display:none!important}
