/* FB30A: compact, self-contained four-gate signature; stable on first render. */
.bangDomeCarouselLogo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:min(100%,250px);height:92px;max-height:100%;margin:auto;color:#f5faff;overflow:hidden;text-align:center}
.bangDomeCarouselLogo>strong{display:block;font-family:system-ui,-apple-system,sans-serif;font-size:clamp(20px,5vw,29px);font-weight:950;letter-spacing:.045em;line-height:1;white-space:nowrap;text-shadow:0 0 14px rgba(55,208,255,.42)}
.bangDomeCarouselLogo>strong em{font-style:normal;color:#ffe58b}
.bangDomeLogoArena{display:block;width:min(100%,236px);height:63px;flex:0 1 63px;overflow:visible;filter:drop-shadow(0 0 7px rgba(51,200,255,.22))}
@media(max-width:370px){.bangDomeCarouselLogo{height:84px}.bangDomeCarouselLogo>strong{font-size:21px}.bangDomeLogoArena{height:57px;flex-basis:57px}}
body.bang-dome-shell-open[data-score-mod-view="score"] #scoreModArea>.scoreCard:not(.bangDomeNativeScore){display:none!important}
body.bang-dome-shell-open[data-score-mod-view="score"] #scoreModArea>.bangDomeNativeScore{display:grid!important;grid-column:1/-1!important;height:100%!important;min-height:0!important}
body.bang-dome-shell-open[data-score-mod-view="mod"] #scoreModArea>.bangDomeNativeScore{display:none!important}
body.bang-dome-shell-open .turnCard{display:none!important}
body.bang-dome-shell-open[data-score-mod-view="score"] .reactionCard{display:grid!important}
body.bang-dome-shell-open .boardwrap{max-width:min(100%,min(73dvh,720px))!important;width:min(100%,min(73dvh,720px))!important;height:auto!important;aspect-ratio:1!important;min-height:0!important;margin:0 auto 6px!important;padding:3px!important;box-sizing:border-box!important}
body.bang-dome-shell-open .boardwrap>#gameModuleViewport{inset:3px!important}
.bangDomeNativeScore{padding:8px 10px!important;border-radius:18px!important;border:1px solid rgba(255,255,255,.1)!important;background:linear-gradient(180deg,var(--panelA),var(--panelB))!important}
.bangDomeNativeScore .marbleBangShellPlayers{align-items:stretch}
.bangDomeNativeFrame{width:100%;height:100%;display:block;border:0;border-radius:inherit;background:transparent;touch-action:manipulation}
/* C10S: clean first-paint mask. One compact wordmark, one discreet glow pulse.
   The loading state stays accessible; warnings remain readable if boot stalls. */
.bangDomeBootSplash{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;pointer-events:none;overflow:hidden;background:#071120;color:#eef7ff;text-align:center;opacity:1;transition:opacity .24s ease-out;isolation:isolate}
.bangDomeBootSplash.is-done{opacity:0}
.bangDomeBootLogo{display:block;font:850 clamp(17px,4.2vw,22px)/1.12 system-ui,-apple-system,sans-serif;letter-spacing:.09em;white-space:nowrap;text-shadow:0 0 12px rgba(94,195,233,.18)}
.bangDomeBootLogo em{font-style:normal;color:#a5e5f3;text-shadow:0 0 10px rgba(68,194,235,.20)}
.bangDomeBootLogo::after{content:"";display:block;width:54px;height:1px;margin:15px auto 0;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(123,223,245,.80),transparent);transform-origin:center;animation:bdBootLine 1.6s ease-in-out infinite}
.bangDomeBootStatus{font:700 9px/1.5 ui-monospace,monospace;letter-spacing:.085em;color:#b4cfe4}
/* Normal loading uses only the wordmark and light line. Reveal status on a
   genuine load problem so offline diagnostics cannot silently disappear. */
.bangDomeBootSplash:not([data-state]) .bangDomeBootStatus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.bangDomeBootSplash[data-state] .bangDomeBootStatus{display:block;margin-top:17px;max-width:85%;text-wrap:balance}
@keyframes bdBootLine{0%,100%{opacity:.26;transform:scaleX(.78)}50%{opacity:.88;transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.bangDomeBootLogo::after{animation:none;opacity:.67}.bangDomeBootSplash{transition:none}}

/* Only BÄNG DOME changes its local star density. Global speed and Dose are untouched. */
body.bang-dome-shell-open #starflightCanvas{opacity:var(--starflight-opacity,.55)!important}
body.bang-dome-shell-open #gameModuleViewport{background:transparent!important}
@media(max-width:560px){body.bang-dome-shell-open .boardwrap{width:min(100%,min(69dvh,720px))!important;max-width:100%!important}}

/* SCORE / GB3 / VisualSynth can change the shared top-panel height.
   Keep the square board within the remaining vertical budget on small phones. */
@media(max-width:600px){
 body.bang-dome-shell-open.gb3-active .boardwrap,
 body.bang-dome-shell-open[data-score-mod-view="mod"] .boardwrap{width:min(100%,max(215px,calc(100dvh - 365px)))!important;}
}

/* FB30D – own start controls only during Dome Bäng setup. */
.bangDomeCarouselLogo{height:100px!important;max-height:100%!important;gap:1px!important;overflow:visible!important}
.bangDomeCarouselLogo .bangDomeLogoSimple{display:block;width:162px;height:68px;max-width:100%;flex:0 1 68px;overflow:visible;filter:drop-shadow(0 0 10px rgba(112,185,255,.18))}
.bangDomeCarouselLogo>strong{margin-top:-2px!important;font-size:24px!important;letter-spacing:.05em!important;text-shadow:0 0 8px rgba(126,196,255,.20)!important}
.bangDomeCarouselLogo>strong em{color:#9fe8ff!important}
#startBangDomePanel{display:none!important}
#matchStartOverlay.ux-flow[data-vs-game="bangdome"][data-ux-step="setup"] #startBangDomePanel{
 display:grid!important;grid-column:1/-1!important;order:24!important;gap:7px!important;align-items:stretch!important;
 width:100%!important;min-width:0!important;padding:0!important;background:transparent!important;border:0!important;
}
#startBangDomePanel .bd30MenuHeader{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#e7f7ff;font-size:10px;letter-spacing:.08em}
#startBangDomePanel .bd30MenuHeader small{font-size:9px;color:#94adcd;letter-spacing:0}
#startBangDomePanel .bd30MenuRow{display:grid;grid-template-columns:minmax(100px,.9fr) minmax(175px,1.5fr);gap:7px;align-items:center;padding:7px 8px;border-radius:11px;background:rgba(50,92,149,.08);border:1px solid rgba(158,200,255,.12);min-width:0}
#startBangDomePanel .bd30MenuRow>span{display:flex;flex-direction:column;gap:3px;min-width:0;color:#e2f6ff;font:850 9px/1.15 system-ui,sans-serif;letter-spacing:.015em}
#startBangDomePanel .bd30MenuRow>span small{font:600 8px/1.2 system-ui,sans-serif;color:#8faac2}
#startBangDomePanel .bd30Options{display:flex;gap:3px;min-width:0}
#startBangDomePanel .bd30Options button{flex:1 1 0;min-width:0;min-height:35px;padding:4px 2px!important;font:900 9px/1.2 system-ui,sans-serif!important;border-radius:7px!important;color:#c9ddec!important;border:1px solid rgba(166,190,229,.17)!important;background:rgba(255,255,255,.04)!important}
/* FB31ZM: six durations fit in the existing single row, no extra menu height. */
#startBangDomePanel .bd30DurationOptions{gap:2px!important}
#startBangDomePanel .bd30DurationOptions button{font-size:8px!important;letter-spacing:-.015em!important;padding:3px 0!important;min-width:0!important}
#startBangDomePanel .bd30Options button.is-active{color:#f9efff!important;background:rgba(147,72,228,.24)!important;border-color:rgba(199,118,255,.72)!important;box-shadow:0 0 10px rgba(178,88,255,.12)!important}
#matchStartOverlay[data-vs-game="bangdome"] #startGb3MusicToggle{display:none!important}
#matchStartOverlay[data-vs-game="bangdome"] #startGb3MusicField{justify-content:center!important}
#matchStartOverlay[data-vs-game="bangdome"] .startGb3MusicCopy::after{content:'♫ AUTO';font-size:8px;color:#bcffdd}
@media(max-width:380px){#startBangDomePanel .bd30MenuRow{grid-template-columns:1fr!important;gap:5px;padding:5px 7px}#startBangDomePanel .bd30MenuRow>span{flex-direction:row;align-items:baseline;gap:7px}#startBangDomePanel .bd30MenuRow>span small{white-space:nowrap}#startBangDomePanel .bd30Options button{min-height:30px}}
/* Timed arcade rounds own their countdown; classic turn-based Hurry Up is irrelevant. */
#matchStartOverlay[data-vs-game="bangdome"] .matchStartHurryOption,
#matchStartOverlay[data-vs-game="bangdome"] #startHurryDetails{display:none!important}

/* FB30F: real per-seat marble skins. Preserve the existing scoreboard geometry. */
.bangDomeNativeScore .marbleBangScoreMarble:has(.bangDomeSeatSkinCanvas){
 overflow:hidden!important;border-radius:50%!important;
}
.bangDomeNativeScore .marbleBangScoreMarble:not(.is-skin-ready){
 background:radial-gradient(circle at 29% 23%,#fff9,var(--seat-color) 42%,#10182c 95%)!important;
 box-shadow:inset -3px -5px 8px #0009,0 0 9px color-mix(in srgb,var(--seat-color) 30%,transparent)!important;
}
.bangDomeNativeScore .bangDomeSeatSkinCanvas{display:block!important;width:100%!important;height:100%!important;pointer-events:none!important}

/* FB31B – the existing score marbles are the only visible skin edit buttons. */
.bangDomeNativeScore .bangDomeSkinEdit{appearance:none;display:block;position:relative;padding:0!important;min-width:0;border-radius:50%!important;cursor:pointer;touch-action:manipulation;flex-shrink:0}
.bangDomeNativeScore .bangDomeSkinEdit:focus-visible{outline:2px solid #d7aaff;outline-offset:3px}
.bangDomeSkinPicker[hidden]{display:none!important}
.bangDomeSkinPicker{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(2,7,18,.76);backdrop-filter:blur(6px)}
.bangDomeSkinPickerPanel{width:min(380px,94vw);padding:15px;border:1px solid #896ad488;border-radius:17px;color:#ecfaff;background:linear-gradient(160deg,#172a52,#090b23);box-shadow:0 14px 42px #000a}
.bangDomeSkinPickerHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;letter-spacing:.08em;font:950 12px system-ui}
.bangDomeSkinPickerHead button{width:36px;height:36px;border:1px solid #ffffff2c;background:#ffffff0f;border-radius:10px;color:white;font-size:20px}
.bangDomeSkinPickerGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.bangDomeSkinPickerGrid button{min-height:44px!important;padding:8px!important;border:1px solid #ffffff27!important;border-radius:11px!important;background:#ffffff10!important;color:#fff!important;font:850 11px system-ui!important}
.bangDomeSkinPickerGrid button.is-active{border-color:#d09cff!important;background:#974df052!important}
.bangDomeSkinPickerPanel>small{display:block;margin-top:12px;color:#b9c4dc;font:600 10px/1.4 system-ui}

/* FB31I: the four complete Dome player cards are accessible Skin Editor triggers.
   Preserve the current four-player score geometry and increase only the skin art. */
body.bang-dome-shell-open .bangDomeNativeScore .marbleBangScoreSlot{
 cursor:pointer!important;touch-action:manipulation;
}
body.bang-dome-shell-open .bangDomeNativeScore .marbleBangScoreSlot:focus-visible{
 outline:2px solid #d7aaff;outline-offset:2px;
}
body.bang-dome-shell-open .bangDomeNativeScore .marbleBangScoreMarble{
 border:1px solid rgba(215,231,255,.28)!important;
 box-shadow:0 0 0 2px color-mix(in srgb,var(--seat-color) 15%,transparent)!important;
 background:rgba(7,15,34,.38)!important;
}
body.bang-dome-shell-open .bangDomeNativeScore .bangDomeSeatSkinCanvas{
 width:100%!important;height:100%!important;object-fit:contain!important;
}
body.bang-dome-shell-open .bangDomeNativeScore .marbleBangScoreSlot:active{
 background:color-mix(in srgb,var(--seat-color) 9%,transparent)!important;
}
.bangDomeSkinPickerGrid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;}
.bangDomeSkinPickerGrid button{
 display:flex!important;flex-direction:column!important;gap:3px!important;align-items:center!important;
 justify-content:center!important;min-height:89px!important;padding:6px 3px!important;overflow:hidden;
}
.bangDomeSkinThumb{
 display:block;width:53px;height:53px;max-width:100%;border-radius:50%;background-position:center;
 background-size:contain;background-repeat:no-repeat;
 border:1px solid rgba(255,255,255,.12);background-color:rgba(14,26,50,.7);
}
.bangDomeSkinThumb:not(.is-ready)::after{content:'✦';display:grid;place-items:center;height:100%;color:rgba(200,163,255,.65)}
@media(max-width:360px){.bangDomeSkinPickerGrid{gap:5px!important}.bangDomeSkinPickerGrid button{min-height:76px!important;font-size:9px!important}.bangDomeSkinThumb{width:43px;height:43px}}
/* The old classic Go instructions do not describe a four-gate arcade match. */
body.bang-dome-shell-open[data-score-mod-view="score"] .reactionCard{display:none!important;}

/* FB31Y – integrated Dome message centre. The clock never overlays the arena. */
body.bang-dome-shell-open[data-score-mod-view="score"] #scoreModArea>.bangDomeNativeScore{
 grid-template-rows:minmax(0,1fr) 25px!important;align-content:stretch!important;row-gap:2px!important;
}
body.bang-dome-shell-open .bangDomeNativeScore .marbleBangShellPlayers{min-height:0!important}
body.bang-dome-shell-open .bangDomeMessageCenter{
 display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;
 min-height:23px;padding:2px 5px 0;border-top:1px solid rgba(123,194,236,.20);min-width:0;
}
body.bang-dome-shell-open .bangDomeMessageText{
 min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
 font:800 clamp(9px,2.4vw,11px)/1.2 system-ui,sans-serif;
 color:rgba(204,231,250,.93);letter-spacing:.01em;text-align:left;
}
body.bang-dome-shell-open .bangDomeMessageCenter>.bangDomeClock{
 display:inline-block;position:static!important;transform:none!important;flex:none;
 min-width:0!important;min-height:0!important;margin:0!important;padding:0 2px!important;
 border:0!important;border-radius:0!important;
 background:transparent!important;box-shadow:none!important;
 font:900 13px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.01em;
 font-variant-numeric:tabular-nums;color:#c4f7ff;text-shadow:0 0 6px #64cfff48;
 text-align:center;white-space:nowrap;pointer-events:none;
}
body.bang-dome-shell-open .bangDomeClock.is-warning{color:#ffe09b;border-color:rgba(255,185,99,.56)}
body.bang-dome-shell-open .bangDomeClock.is-final{color:#ffc5c9;border-color:rgba(255,107,159,.70)}
body.bang-dome-shell-open .bangDomeClock.is-overtime{color:#ebc3ff;border-color:rgba(206,138,255,.70)}
body.bang-dome-shell-open .bangDomeClock.is-finished{opacity:.73}
@media(max-width:380px){body.bang-dome-shell-open .bangDomeMessageText{font-size:8.7px!important}}

/* ARCADE V2: use same logo family during the short BÄNG DOME first-paint splash. */
.bangDomeBootLogo img{display:block;width:min(78vw,320px);max-width:100%;height:auto;max-height:190px;object-fit:contain;margin:auto}.bangDomeBootSplash .bangDomeBootLogo{width:100%;display:flex;align-items:center;flex-direction:column}.bangDomeBootLogo::after{flex:none}
@media(max-height:700px){.bangDomeBootLogo img{max-height:130px;width:min(62vw,260px)}}

/* DOME iPad R2: tablet portrait arena fit.
   720px was a hard cap on the square canvas wrapper even when an iPad has
   extra horizontal room. Grow only the DOME viewport and stay within the
   available portrait height. The phone and other games remain unchanged. */
@media (min-width:700px) and (max-width:1100px) and (orientation:portrait){
  body.bang-dome-shell-open .boardwrap{
    width:min(100%,calc(100dvh - 285px),940px)!important;
    max-width:min(100%,calc(100dvh - 285px),940px)!important;
  }
}

/* R30 – result hierarchy: 1 champion badge in the existing four-player HUD.
   No scoreboard resize, no extra row, no winners on provisional leads. */
body.bang-dome-shell-open .bangDomeNativeScore .marbleBangScoreSlot.is-dome-winner{
 border-color:rgba(255,221,133,.74)!important;
 background:radial-gradient(circle at 16% 20%,rgba(255,220,132,.13),transparent 55%),rgba(255,255,255,.018)!important;
 box-shadow:inset 0 1px rgba(255,245,208,.18),0 0 15px rgba(255,199,93,.16)!important;
}
body.bang-dome-shell-open .bangDomeNativeScore .marbleBangScoreSlot.is-dome-winner::after{
 content:'♛';position:absolute;right:4px;top:3px;z-index:2;pointer-events:none;
 color:#ffe6a0;font:900 13px/1 system-ui,sans-serif;text-shadow:0 0 7px rgba(255,201,85,.72);
}
body.bang-dome-shell-open .bangDomeNativeScore .marbleBangScoreSlot.is-dome-winner .marbleBangScoreMarble{
 box-shadow:0 0 0 2px rgba(255,227,148,.42),0 0 13px rgba(255,203,105,.24)!important;
}
@media(prefers-reduced-motion:reduce){
 body.bang-dome-shell-open .bangDomeNativeScore .marbleBangScoreSlot.is-dome-winner{animation:none!important}
}

/* R39 – DOME setup: one compact players/skins panel + existing music controls.
   Other options live under the existing third navigation step. */
#matchStartOverlay.ux-flow #startBangDomePanel,
#matchStartOverlay.ux-flow #startBangDomeAdvanced{display:none!important;}
#matchStartOverlay.ux-flow[data-vs-game="bangdome"][data-ux-step="setup"] #startBangDomePanel{
 display:grid!important;grid-column:1/-1!important;order:20!important;gap:7px!important;
 width:100%!important;padding:10px!important;border:1px solid rgba(151,199,255,.15)!important;
 border-radius:13px!important;background:rgba(27,43,87,.16)!important;box-sizing:border-box!important;
}
#startBangDomePanel .bd39MenuHeader{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
#startBangDomePanel .bd39MenuHeader strong{color:#e8f7ff;font:900 10px/1 system-ui,sans-serif;letter-spacing:.08em}
#startBangDomePanel .bd39MenuHeader small{color:#b7ccdf;font:700 9px/1.2 system-ui,sans-serif}
#startBangDomePanel .bd39PlayerCount{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
#startBangDomePanel .bd39PlayerCount button{min-height:37px!important;display:grid;place-items:center;padding:3px!important;border-radius:9px!important;border:1px solid rgba(190,209,243,.18)!important;background:rgba(255,255,255,.045)!important;color:#d9eaf7!important;font:900 12px/1 system-ui,sans-serif!important}
#startBangDomePanel .bd39PlayerCount button.is-active{background:rgba(158,81,230,.24)!important;border-color:rgba(213,151,255,.73)!important;color:#fff!important;box-shadow:0 0 13px rgba(182,97,255,.17)!important}
#startBangDomePanel .bd39SeatGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
#startBangDomePanel .bd39Seat{position:relative;display:flex;align-items:center;gap:7px;min-width:0;min-height:56px;padding:6px!important;border-radius:10px!important;border:1px solid rgba(173,201,252,.16)!important;background:rgba(9,17,39,.47)!important;color:#e8f4ff!important;text-align:left;cursor:pointer}
#startBangDomePanel .bd39Seat.is-human{border-color:rgba(82,230,244,.40)!important;background:rgba(47,118,167,.12)!important}
#startBangDomePanel .bd39SeatCopy{display:flex;flex-direction:column;gap:3px;min-width:0;overflow:hidden}
#startBangDomePanel .bd39SeatCopy strong{font:900 10px/1 system-ui,sans-serif;white-space:nowrap}
#startBangDomePanel .bd39SeatCopy small{font:700 9px/1.12 system-ui,sans-serif;color:#b1cce5;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
#startBangDomePanel .bd39Edit{position:absolute;right:5px;top:5px;font-size:10px;color:#b79cfa}
#startBangDomePanel .bd39Hint{font:650 9px/1.15 system-ui,sans-serif;color:rgba(191,214,234,.60);text-align:center}
.bd39SkinOrb{display:block;flex:0 0 37px;width:37px;height:37px;border-radius:50%;border:1px solid rgba(245,250,255,.48);background:radial-gradient(circle at 29% 22%,#fff,#7daef8 32%,#2c3883 71%,#080a2a 100%);box-shadow:inset -3px -5px 7px rgba(2,3,14,.5),0 0 7px rgba(137,199,255,.16)}
.bd39Skin-plasma90s{background:radial-gradient(circle at 50% 50%,#ffefff 0 6%,#ee81fc 9%,#6133a0 14%,#131336 28%,#5c56b8 32%,#161533 38%,#0d0e2c 70%,#080916 100%);box-shadow:inset -4px -6px 10px #020313,0 0 8px #9c69ef6a}
.bd39Skin-eyes{background:radial-gradient(circle at 52% 52%,#121117 0 17%,#8d7772 18% 23%,#52adca 25% 38%,#274760 39% 42%,#f3f6ee 43% 76%,#8cabb4 100%)}
.bd39Skin-disco{background:repeating-conic-gradient(from 12deg,#fff 0 12deg,#aebdcd 12deg 21deg,#687184 21deg 30deg);box-shadow:inset -4px -5px 9px #243448aa,0 0 8px #bdf7ff66}
.bd39Skin-planet{background:radial-gradient(circle at 24% 21%,#e6fff7,#6eedd4 23%,#407bc4 50%,#15234b 85%)}
.bd39Skin-smiley{background:radial-gradient(circle at 30% 22%,#fffad2,#ffe869 25%,#f6bc23 60%,#965013 100%)}
.bd39Skin-smiley::after{content:'☺';display:grid;place-items:center;width:100%;height:100%;color:#6e420f;font:900 24px/1 system-ui,sans-serif}
.bd39Skin-neon{background:radial-gradient(circle at 30% 22%,#fff,#a6fff9 22%,#00bea7 55%,#03546d 90%)}
.bd39Skin-plasma{background:radial-gradient(circle at 31% 22%,#ffe8ff,#db9ff8 23%,#9b45da 55%,#341267 90%)}
.bd39Skin-swirl{background:conic-gradient(from 40deg,#e3faff,#3886bc,#201947,#f0e0ff,#3967ac,#e3faff)}
.bd39Skin-classic{background:radial-gradient(circle at 29% 22%,#fff,#bebfd6 35%,#3d4970 85%)}
#matchStartOverlay.ux-flow[data-vs-game="bangdome"][data-ux-step="advanced"] #startBangDomeAdvanced{
 display:grid!important;grid-column:1/-1!important;grid-template-columns:1fr!important;gap:7px!important;padding:0!important;
}
#startBangDomeAdvanced .bd30MenuRow{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;padding:8px;border-radius:11px;background:rgba(50,92,149,.08);border:1px solid rgba(158,200,255,.12)}
#startBangDomeAdvanced .bd30MenuRow>span{display:flex;align-items:baseline;justify-content:space-between;gap:7px;color:#e2f6ff;font:850 10px/1.15 system-ui,sans-serif}
#startBangDomeAdvanced .bd30MenuRow>span small{color:#8faac2;font:600 8px/1.3 system-ui,sans-serif}
#startBangDomeAdvanced .bd30Options{display:flex;gap:4px;min-width:0}
#startBangDomeAdvanced .bd30Options button{flex:1 1 0;min-width:0;min-height:34px;padding:5px 1px!important;border:1px solid rgba(166,190,229,.17)!important;border-radius:8px!important;background:rgba(255,255,255,.04)!important;color:#c9ddec!important;font:850 clamp(8px,2.3vw,10px)/1.1 system-ui,sans-serif!important}
#startBangDomeAdvanced .bd30Options button.is-active{color:#fff!important;border-color:#c77bf1!important;background:rgba(147,72,228,.24)!important}
/* One CPU-mode engine: never show the generic mode or difficulty on the quick step. */
#matchStartOverlay.ux-flow[data-vs-game="bangdome"] .matchStartModeField,
#matchStartOverlay.ux-flow[data-vs-game="bangdome"][data-ux-step="setup"] #startDifficultyLabel{display:none!important}
#matchStartOverlay.ux-flow[data-vs-game="bangdome"][data-ux-step="advanced"] #startDifficultyLabel:not(.vs-ui-hide){display:grid!important;grid-column:1/-1!important}
/* Keep the existing real GB3 controls, not a decorative second music switch. */
#matchStartOverlay.ux-flow[data-vs-game="bangdome"][data-ux-step="setup"] #startGb3MusicField:not(.vs-ui-hide){
 display:flex!important;grid-column:1/-1!important;order:30!important;min-height:42px!important;height:42px!important;
 padding:5px 8px!important;gap:6px!important;visibility:visible!important;pointer-events:auto!important;
}
#matchStartOverlay.ux-flow[data-vs-game="bangdome"] #startGb3MusicField::before{content:'♫ MUSIK';display:block;color:#d9eef5;font:900 9px/1 system-ui,sans-serif;white-space:nowrap}
#matchStartOverlay.ux-flow[data-vs-game="bangdome"] #startGb3MusicField .startGb3MusicCopy::after{display:none!important}
#matchStartOverlay.ux-flow[data-vs-game="bangdome"] #startGb3MusicToggle{display:grid!important;place-items:center!important;visibility:visible!important}
#matchStartOverlay.ux-flow[data-vs-game="bangdome"][data-ux-step="setup"] #startGb3GenreBtn{flex:1 1 auto!important;min-width:0!important;max-width:none!important}
#matchStartOverlay.ux-flow[data-vs-game="bangdome"][data-ux-step="setup"] #startGb3PatternBtn{flex:0 0 54px!important;min-width:54px!important}
#matchStartOverlay.ux-flow[data-vs-game="bangdome"][data-ux-step="advanced"] #startGb3MusicField{display:none!important}
@media(max-width:365px){#startBangDomePanel .bd39Seat{gap:5px;min-height:50px;padding:4px!important}#startBangDomePanel .bd39SkinOrb{width:32px;height:32px;flex-basis:32px}#startBangDomePanel .bd39SeatCopy strong{font-size:9px}}
.bd39SkinOverlay{position:fixed;inset:0;display:grid;place-items:center;z-index:30000;background:rgba(3,7,22,.83);backdrop-filter:blur(7px);padding:15px}
.bd39SkinDialog{width:min(390px,95vw);padding:13px;border:1px solid rgba(172,133,255,.48);border-radius:16px;background:linear-gradient(165deg,#172646,#0a0d23);color:#fff;box-shadow:0 15px 50px #000a}
.bd39SkinDialogHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font:900 12px system-ui,sans-serif;letter-spacing:.06em}
.bd39SkinDialogHead button{width:34px;height:34px;border-radius:9px;border:1px solid #fff4;background:#fff1;color:#fff;font-size:20px}
.bd39SkinChoices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.bd39SkinChoices button{min-height:81px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:6px 2px!important;border:1px solid #ffffff2a!important;border-radius:10px!important;background:#ffffff0b!important;color:#dce7ff!important}
.bd39SkinChoices button.is-active{border-color:#e1baff!important;background:#c47aff24!important}
.bd39SkinChoices .bd39SkinOrb{width:43px;height:43px;flex-basis:43px}
.bd39SkinChoices button strong{font:800 9px/1 system-ui,sans-serif;white-space:nowrap;letter-spacing:-.015em}

/* Final R39 music fit: undo inherited absolute pseudo-label / bottom alignment. */
#matchStartOverlay.ux-flow[data-vs-game="bangdome"][data-ux-step="setup"] #startGb3MusicField{align-items:center!important;padding-top:5px!important;}
#matchStartOverlay.ux-flow[data-vs-game="bangdome"] #startGb3MusicField::before{position:static!important;left:auto!important;top:auto!important;flex:0 0 auto;letter-spacing:.04em!important;}

/* R42 – One canonical DOM menu. The static sections exist before launcher.js
   executes; avoid relying on the legacy menu's mutation observer timing. */
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="setup"] #startBangDomePanel,
#matchStartOverlay.ux-flow[data-vs-game="bangdome"][data-ux-step="setup"] #startBangDomePanel{
 display:grid!important;grid-column:1/-1!important;order:18!important;
}
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="advanced"] #startBangDomeAdvanced,
#matchStartOverlay.ux-flow[data-vs-game="bangdome"][data-ux-step="advanced"] #startBangDomeAdvanced{
 display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:7px!important;
}
/* The generic CPU mode picker, board and difficulty were the old DOME setup. */
#matchStartOverlay.ux-flow.bd42-dome-selected .matchStartModeField,
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="setup"] #startDifficultyLabel,
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="setup"] #startThemeField,
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="setup"] #startSizeField,
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="setup"] #startPocketArcadePanel,
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="setup"] #startSkinQuick{
 display:none!important;
}
/* Keep only the real GB3 control alongside player/skin selection. */
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="setup"] #startGb3MusicField{
 display:flex!important;visibility:visible!important;pointer-events:auto!important;
 grid-column:1/-1!important;order:24!important;min-width:0!important;
}
/* Step three: only DOME options plus CPU difficulty. Do not show legacy
   Hurry-Up, generic board or other game's additional settings. */
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="advanced"] #startMorePanel{
 display:grid!important;grid-column:1/-1!important;gap:7px!important;
}
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="advanced"] #startMorePanel > :not(#startBangDomeAdvanced){display:none!important;}
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="advanced"] .matchStartGrid > :not(#startMorePanel):not(#startDifficultyLabel){display:none!important;}
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="advanced"] #startDifficultyLabel:not(.vs-ui-hide){
 display:grid!important;grid-column:1/-1!important;order:20!important;
}
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="advanced"] #startGb3MusicField{display:none!important;}
#matchStartOverlay.ux-flow.bd42-dome-selected[data-ux-step="advanced"] #startBangDomePanel{display:none!important;}

/* R54: visual fallback for newly selectable organic families in Dome setup */
.bd39SkinOrb.bd39Skin-magma{background:radial-gradient(circle at 31% 27%,#4a3831 0%,#242228 34%,#0c1018 69%,#02040a 100%);box-shadow:inset -5px -7px 8px #02040b,0 0 10px #ff8a2d44}
.bd39SkinOrb.bd39Skin-glace{background:radial-gradient(circle at 28% 22%,#fff8dc,#ed9bc5 40%,#94527f 73%,#27152b 100%)}
.bd39SkinOrb.bd39Skin-goo{background:radial-gradient(circle at 30% 24%,#eaffb9,#62dc81 45%,#156a68 77%,#08252c 100%)}
.bd39SkinOrb.bd39Skin-meteor{background:radial-gradient(circle at 28% 21%,#a49e99,#5e5a64 43%,#24242f 77%,#0b0d13 100%)}

/* R60 · lightweight Punkteball menu orb. */
.bd39SkinOrb.bd39Skin-punkteball{background:radial-gradient(circle at 29% 25%,#ff6777 0%,#ed1028 49%,#930014 100%);position:relative;box-shadow:inset -3px -5px 7px #550510,0 0 7px #ff4f5050}
.bd39SkinOrb.bd39Skin-punkteball:not(:has(canvas))::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 30% 38%,#fff 0 11%,transparent 12%),radial-gradient(circle at 72% 29%,#fff 0 9%,transparent 10%),radial-gradient(circle at 64% 76%,#fff 0 12%,transparent 13%),radial-gradient(circle at 18% 76%,#fff 0 8%,transparent 9%);pointer-events:none}

/* R63: true renderer-generated skin orb previews replace cosmetic CSS layers. */
#startBangDomePanel .bd39SkinOrb:has(canvas){border:0!important;box-shadow:none!important;background:none!important;overflow:visible!important;}
#startBangDomePanel .bd39SkinOrb:has(canvas)::after{content:none!important;display:none!important;}
#startBangDomePanel .bd39SkinOrb canvas{display:block!important;width:100%!important;height:100%!important;object-fit:contain;pointer-events:none!important;}

/* R68 · neutral fallback only; actual preview uses shared volleyball renderer */
.bd39SkinOrb.bd39Skin-volleyball{background:conic-gradient(from 20deg,#ffd51c 0 27%,#166aca 27% 52%,#ffdd20 52% 75%,#1968c7 75% 100%);border:2px solid #c9dae3;box-shadow:inset -4px -5px 8px #142d56aa;}
