/* A small two-player invitation, styled as part of the underground camp. */
.mp-lobby:not([open]){display:none}
.mp-lobby[open]{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;padding:18px;margin:0;border:0;background:transparent;display:grid;place-items:center;overflow:auto;color:#fff}
.mp-lobby::backdrop{background:rgba(3,13,39,.78)}
.mp-card,.mp-card *{box-sizing:border-box}
.mp-card{position:relative;isolation:isolate;width:min(100%,630px);max-height:calc(100dvh - 36px);overflow:auto;border:3px solid #77dfff;border-radius:28px;background:linear-gradient(155deg,#105cc3,#143d9b 57%,#0a2469);box-shadow:0 9px 0 #051c55,0 22px 60px #000b2abf;color:#fff;font-family:inherit}
.mp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:23px 26px 16px}
.mp-kicker{display:inline-block;color:#a5f4ff;font-size:13px;font-weight:800}
.mp-header h2{margin:4px 0;color:#fff;font-size:clamp(25px,4vw,38px);font-weight:950;letter-spacing:-.03em;line-height:1.05;text-shadow:0 3px #092560}
.mp-intro{max-width:430px;margin:9px 0 0;color:#def6ff;font-size:15px;line-height:1.4}
.mp-close{flex:0 0 auto;width:39px;height:39px;border:2px solid #88cfff;border-radius:12px;background:#123c8c;color:#fff;font-size:27px;line-height:1;cursor:pointer}
.mp-stage{margin:0 18px;padding:16px;border:2px solid #55bdf7;border-radius:20px;background:radial-gradient(ellipse at 70% 0%,#1b83d4a8,#082656db),url('./assets/art/crystal-base-v27.webp') center 48%/cover;box-shadow:inset 0 1px #c9f3ff60}
.mp-route{display:flex;align-items:center;gap:10px}
.mp-route-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border:2px solid #fff0a0;border-radius:12px;background:linear-gradient(#ffe65b,#ffad10);box-shadow:0 3px #a35c00;color:#785200;font-size:25px;font-weight:900}
.mp-route small,.mp-player small{display:block;color:#b8e8f9;font-size:11px;font-weight:750}
.mp-route strong{display:block;font-size:15px;font-weight:900;line-height:1.2}
.mp-players{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:5px;margin-top:15px}
.mp-player{min-width:0;display:flex;align-items:center;gap:8px;min-height:58px;padding:8px;border:2px solid #69c9f4;border-radius:14px;background:#0a337bdc}
.mp-player--friend{border-style:dashed;border-color:#72a8d8;background:#071f5bac}
.mp-lobby.has-peer .mp-player--friend{border-style:solid;border-color:#65f2c1;background:#075961c9}
.mp-player-icon{display:grid;place-items:center;flex:none;width:35px;height:35px;border-radius:11px;background:linear-gradient(145deg,#ffdb51,#fa8b14);box-shadow:0 3px #9e5c06;color:#12356f;font-size:19px;font-weight:900}
.mp-player--friend .mp-player-icon{background:linear-gradient(145deg,#a67cff,#6444df);box-shadow:0 3px #342182;color:#fff}
.mp-player strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.2;font-weight:900}
.mp-player i{display:grid;place-items:center;flex:none;width:22px;height:22px;margin-left:auto;border-radius:50%;background:#26bd77;color:white;font-style:normal;font-weight:900}
.mp-player--friend i{background:#3e6eaa}.mp-lobby.has-peer .mp-player--friend i{background:#26bd77}
.mp-player-link{text-align:center;color:#ffe652;font-weight:900}
.mp-body{padding:16px 24px 22px}.mp-status{margin:0 0 13px;color:#eaf8ff;font-weight:800;font-size:14px;line-height:1.35}.mp-lobby[data-state=error] .mp-status{color:#ffe1a7}
.mp-primary,.mp-secondary{border-radius:14px;cursor:pointer;font-family:inherit;font-weight:900}.mp-primary{width:100%;min-height:54px;padding:12px;border:3px solid #fff09a;background:linear-gradient(#ffe754,#ffbc00);box-shadow:0 4px #a56100,inset 0 2px #fff9;color:#12356f;font-size:18px}.mp-primary span{margin-left:5px}.mp-primary:active{transform:translateY(2px);box-shadow:0 2px #a56100}
.mp-secondary{min-height:47px;padding:10px 17px;border:2px solid #89d9ff;background:linear-gradient(#2383e5,#1752b0);box-shadow:0 3px #092b70;color:#fff;font-size:14px}.mp-primary:disabled,.mp-secondary:disabled{opacity:.6;cursor:wait}
.mp-divider{display:flex;align-items:center;gap:9px;margin:20px 0 11px;color:#cdeeff;font-size:12px;font-weight:800}.mp-divider::before,.mp-divider::after{content:'';height:1px;flex:1;background:#a4deff65}
.mp-join label,.mp-invite label{display:block;margin-bottom:6px;color:#d9f4ff;font-size:12px;font-weight:800}.mp-join-row,.mp-link-row{display:flex;gap:8px}.mp-join-row input,.mp-link-row input{min-width:0;width:100%;height:47px;padding:0 13px;border:2px solid #7dcdf8;border-radius:12px;background:#f4fbff;color:#183a72;font-family:inherit;font-size:14px;font-weight:600}.mp-join-row .mp-secondary,.mp-link-row .mp-secondary{flex:none}
.mp-invite small{display:block;margin-top:9px;color:#cce9ff;font-size:12px;line-height:1.35}.mp-start,.mp-retry{margin-top:15px}.mp-retry{width:100%}.mp-note{margin:15px 0 0;color:#b6d8f0;font-size:12px;line-height:1.4;text-align:center}
.mp-card :focus-visible{outline:3px solid #fff;outline-offset:3px}.mp-card [hidden]{display:none!important}
@media(max-width:480px){.mp-lobby[open]{padding:10px}.mp-card{max-height:calc(100dvh - 20px);border-radius:22px}.mp-header{padding:17px 17px 13px}.mp-header h2{font-size:26px}.mp-intro{font-size:13px}.mp-stage{margin:0 10px;padding:12px}.mp-players{grid-template-columns:1fr;gap:6px}.mp-player-link{display:none}.mp-player{min-height:48px}.mp-body{padding:13px 16px 18px}.mp-primary{min-height:49px}.mp-join-row,.mp-link-row{flex-wrap:wrap}.mp-join-row .mp-secondary,.mp-link-row .mp-secondary{width:100%}.mp-note{margin-top:12px}}
.mp-game-status{position:absolute;z-index:8;left:50%;bottom:14px;transform:translateX(-50%);padding:9px 15px;border:2px solid #75dafa;border-radius:14px;background:#0d2858ed;color:#fff;font-weight:800;text-align:center;pointer-events:none}.mp-game-leave{position:absolute;z-index:9;top:76px;right:14px;padding:9px 12px;border:2px solid #9adfff;border-radius:12px;background:#164a99;color:white;font-weight:800;cursor:pointer}.mp-game-status[hidden],.mp-game-leave[hidden]{display:none}
