#mobile{display:none!important}
body[data-phase="scoring"][data-phase] #playPanel,body[data-phase="gameover"][data-phase] #playPanel{display:none!important}
html body{background:#304b50}
#join.homeScreen{background:linear-gradient(110deg,#294851f5,#29485170),var(--painted-home) center/cover!important}
.homeScreen .roomShelf{background:#294750d9;color:#ece6cd;border:0;box-shadow:none;transform:none;border-radius:0}
.homeScreen .heroCopy h1{text-shadow:none;letter-spacing:-3px}
.homeScreen button,.homeScreen input,#app header button{border:0;box-shadow:none;border-radius:3px}
.homeScreen .menuPaper input{background:#e4e4ce;color:#304b50}
.homeScreen .eyebrow,.homeScreen .brandMark small{display:none}
.inLobby .gamewrap{border:0!important;box-shadow:none!important;border-radius:0!important}
.inLobby #app header{background:#294750!important;color:#eee8ce}
.inLobby #app aside{background:#37565b!important;color:#ece6cd}
.settingsbox{background:#294951!important;color:#eee8d2!important;border:0!important;box-shadow:none!important;border-radius:3px!important}.settingsbox label{border-bottom:1px solid #ffffff18;padding:10px 0}.volumeRow{display:grid!important;grid-template-columns:1fr 1.4fr;align-items:center}.volumeRow input{accent-color:#e4b65c}
.touchUI:not(.controllerMode):has(#app:not(.hidden)) #mobile{display:flex!important;position:fixed;inset:auto 0 max(12px,env(safe-area-inset-bottom));z-index:30;padding:0 max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left));box-sizing:border-box;justify-content:space-between;pointer-events:none;gap:12px}
#mobile .touchGroup{display:flex;align-items:end;gap:10px;pointer-events:none}
#mobile button{width:62px;height:62px;padding:0;border:1px solid #fff4cf40;border-radius:50%;background:#3c636bbb;color:#fff5dd;box-shadow:none;font:bold 17px system-ui;touch-action:none;user-select:none;-webkit-user-select:none;pointer-events:auto;backdrop-filter:blur(5px)}
#mobile #touchJump{width:78px;height:78px;background:#477c7bcc;font-size:21px}
#mobile #touchCrouch{width:58px;height:58px;font-size:14px}
#mobile #touchPickup,#mobile #touchPlace{width:82px;border-radius:28px;background:#d6ad64ed;color:#3c4140}
#mobile button.pressed{background:#e5bf72;color:#343b37;transform:scale(.94)}
#mobile button:disabled{opacity:.4}
#mobile button[hidden]{display:none!important}
#mobile .movementPad{align-items:flex-end;gap:9px}
#mobile .moveJoystick{width:164px;height:76px;display:grid;grid-template-rows:55px 15px;place-items:center;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}
#mobile .moveJoystick>*{pointer-events:none}
#mobile .moveJoystick .moveTrack{position:relative;width:154px;height:54px;border-radius:29px;background:#263f47dc;box-shadow:inset 0 0 0 3px #fff0c934,inset 0 7px 13px #0e222a66,0 8px 17px #13262c55}
#mobile .moveJoystick .moveTrack:before,#mobile .moveJoystick .moveTrack:after{content:"";position:absolute;top:20px;width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;opacity:.58}
#mobile .moveJoystick .moveTrack:before{left:14px;border-right:10px solid #e5f3e9}
#mobile .moveJoystick .moveTrack:after{right:14px;border-left:10px solid #e5f3e9}
#mobile .moveJoystick small{font-size:9px;letter-spacing:.08em;color:#fff0cfaa;font-weight:900}
#touchMoveKnob{position:absolute;left:50%;top:50%;width:48px;height:48px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 34% 27%,#82a9ab,#466a70 58%,#304e56 59%);box-shadow:inset 0 0 0 2px #e9fff36b,0 4px 8px #10232988;transition:transform 55ms linear}
#mobile .moveJoystick.active #touchMoveKnob{box-shadow:inset 0 0 0 3px #fff3c17a,0 5px 12px #102329aa}
#mobile .movementPad #touchSprint{width:52px;height:52px;border-radius:18px;font-size:11px;align-self:flex-start}
#mobile .actionKeys{align-self:center;align-items:center}
.touchUI.inLobby #app .gamewrap{position:relative;max-width:min(100%,140dvh)}
.touchUI.inLobby #app #mobile{position:absolute!important;bottom:10px!important;padding:0 10px}
.touchUI #mobile .placementKeys,.touchUI:not(.touchMoving) #mobile .movementKeys{display:none}
.touchUI.touchPlacing #mobile .placementKeys{display:flex;margin-left:auto}
.touchUI #game{touch-action:none}
.touchUI #controlsHint{display:none}
@media(orientation:portrait) and (max-width:700px){.touchUI:not([data-phase="lobby"])[data-phase] #app main{min-height:75dvh}.touchUI #mobile{bottom:max(25px,env(safe-area-inset-bottom))}.touchUI #mobile button{width:56px;height:56px}.touchUI #mobile .moveJoystick{width:146px}.touchUI #mobile .moveJoystick .moveTrack{width:138px}.touchUI #mobile .touchGroup{gap:6px}}
/* Flat painted shapes, quiet menus, fewer paper cards. */
#mapGallery{padding:12px 0}#mapGallery[hidden]{display:none}#mapGallery h2{font-size:18px;color:#f1e7cb;margin:8px 2px 12px}#mapGallery #maps{display:flex;gap:12px;overflow:auto;scroll-snap-type:x mandatory;padding:0 0 10px}
#mapGallery .mapBtn{display:flex;flex-direction:column;flex:0 0 210px;position:relative;background:#ede4cf;border:0;border-radius:4px;box-shadow:none;padding:0 0 10px;overflow:hidden;scroll-snap-align:start;text-align:left}
#mapGallery .mapBtn .mapThumb{width:100%;height:105px;margin:0;border:0}#mapGallery .mapBtn b{padding:10px 12px 4px;font-size:16px}#mapGallery .mapBtn small{font-size:10px;padding:0 12px;color:#6b7268}#mapGallery .mapBtn span{position:absolute;top:8px;right:8px;background:#f5e9c6dd;padding:3px 9px;border-radius:12px}#mapGallery .mapBtn.chosen{outline:3px solid #dcb75d;outline-offset:-3px}
#lobby>h3{display:none}
.inLobby .rosterEmpty,.inLobby #playPanel .stageNote{display:none}
.inLobby #playPanel{padding:4px!important;background:transparent!important}
@media(max-width:950px){.inLobby #app main{display:block}.inLobby #app aside{display:none}.inLobby #scorebar{display:none}.inLobby .gamewrap{max-width:min(100%,90dvh);margin:auto}.inLobby #mapGallery .mapBtn{flex-basis:170px}.inLobby #mapGallery .mapThumb{height:85px}.inLobby #playPanel .characterGrid{display:flex;overflow:auto}.inLobby #playPanel .characterCard{min-width:65px}.inLobby #playPanel .portraitArt{height:64px}.inLobby #mapGallery{padding:4px 0}.inLobby #mapGallery h2{font-size:14px;margin:4px}}
#app header,#app aside,.paperPanel{box-shadow:none!important;border:0!important;border-radius:4px!important}
.inLobby #app aside{background:#ece6d3e8}
.inLobby .characterCard{background:transparent;border:0!important;border-radius:0;box-shadow:none}
.inLobby .characterCard.selected{background:#c7d9b377;outline:0}
.inLobby .characterCard:hover{background:#c7d9b344}
#controller{background:#253d46;color:#f6edce;grid-template-rows:38px 65px minmax(65px,1fr) minmax(90px,1fr) 20px 20px}
.ctlCharacters{grid-template-columns:repeat(10,1fr)}
.ctlCharacters button{background:#ffffff0c;border:0;border-radius:9px}
.ctlCharacters img{height:54px;width:100%;object-fit:contain}
.controllerArena{grid-template-columns:repeat(6,1fr)}
.controllerArena button{border:0;border-radius:22px;background:#527d85;color:#fff5dc;box-shadow:none;font-size:18px}

/* V45 physical lobby: the stage itself is the menu */
body.inLobby #app aside,
body.inLobby #playPanel,
body.inLobby #mapGallery,
body.inLobby .flowStrip{display:none!important}
body.inLobby #app main{display:block!important}
body.inLobby .gameColumn{width:100%!important;max-width:none!important}
body.inLobby .gamewrap{width:100%!important;max-width:none!important;margin:0!important}
body.inLobby #game{width:100%!important;max-width:none!important}
body[data-phase="partybox"] #touchPickup{display:none!important}

/* V48 cinematic round ending */
body[data-phase="scoring"] #playPanel,
body[data-phase="gameover"] #playPanel{display:none!important}

/* V50 centered Party Box selector */
.partyOverlay{position:fixed;inset:0;z-index:120;background:#2e3939;display:flex;align-items:center;justify-content:center;padding:18px;box-sizing:border-box}
.partyOverlay.hidden{display:none}
.partyBoard{width:min(1120px,96vw);max-height:94dvh;overflow:hidden;background:#f2e6c8;border:3px solid #2d2a24;box-shadow:12px 14px 0 #171a18;clip-path:var(--paper-cut);padding:22px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:14px}
.partyBoardHead{text-align:center}.partyBoardHead span{font:900 12px system-ui;letter-spacing:3px;color:#a4523c}.partyBoardHead h2{font:1000 clamp(25px,4vw,42px) system-ui;margin:3px 0}.partyBoardHead small{font-weight:800;color:#6d624e}
.partyTabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.partyTabs button{border:2px solid #504736;background:#fff7dc;padding:9px 13px;font-weight:900;box-shadow:2px 3px 0 #504736;cursor:pointer}.partyTabs button.active{background:#f3d654;transform:translateY(2px);box-shadow:1px 1px 0 #504736}.partyTabs small{margin-left:5px;opacity:.65}
.partyCards{overflow:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;padding:3px}.partyPick{position:relative;min-height:132px;border:2px solid #554b39;background:#fff9e7;padding:12px;display:grid;grid-template-columns:76px 1fr;gap:10px;text-align:left;clip-path:polygon(1% 2%,98% 0,100% 95%,96% 100%,2% 98%,0 7%);cursor:pointer}.partyPick img{width:72px;height:72px;object-fit:contain;align-self:center}.partyPick strong,.partyPick small,.partyPick em{display:block}.partyPick strong{font-size:16px}.partyPick small{font-size:11px;color:#6c6252;margin:5px 0}.partyPick em{font-style:normal;font-size:10px;font-weight:900;color:#a14e3c}.partyPick:not(:disabled):hover{background:#fff0a4;transform:translateY(-3px)}.partyPick.taken{background:color-mix(in srgb,var(--owner) 22%,#fff9e7);opacity:.78}.partyPick i{position:absolute;right:7px;top:6px;background:var(--owner);border:1px solid #39332a;padding:4px 6px;font-size:10px;font-style:normal;font-weight:900}
.partyLive{border-top:2px dashed #84765c;padding-top:10px}.partyLive>b{display:block;text-align:center;margin-bottom:8px}.partyLiveRows{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.partyLiveRows>div{display:grid;grid-template-columns:10px auto auto;align-items:center;gap:6px;background:#fff7df;border:1px solid #81745b;padding:6px 9px}.partyLiveRows span{width:9px;height:9px;border-radius:50%;background:var(--p)}.partyLiveRows em{font-style:normal;font-size:11px;color:#8a533d;font-weight:900}
body[data-phase="partybox"] .gamewrap,body[data-phase="partybox"] #scorebar,body[data-phase="partybox"] #killfeed,body[data-phase="partybox"] #app aside,body[data-phase="partybox"] .flowStrip{visibility:hidden}
@media(max-width:700px){.partyOverlay{padding:6px}.partyBoard{width:100%;max-height:100dvh;padding:11px;gap:8px}.partyBoardHead h2{font-size:24px}.partyTabs{gap:4px}.partyTabs button{font-size:11px;padding:7px 9px}.partyCards{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.partyPick{grid-template-columns:52px 1fr;min-height:100px;padding:7px}.partyPick img{width:48px;height:48px}.partyPick strong{font-size:12px}.partyPick small{font-size:9px}.partyPick em{font-size:9px}.partyLiveRows>div{font-size:10px;padding:4px 6px}}
