/* Galaxy Live 2.9 — Post Studio + music + mobile live/chat corrections. */
.gl29CreateHub,.gl29PostModal,.gl29RecorderModal{position:fixed;inset:0;z-index:240;background:#000c;display:grid;place-items:center;padding:12px;backdrop-filter:blur(8px)}
.gl29CreateCard,.gl29PostCard,.gl29RecorderCard{width:min(760px,96vw);max-height:92svh;overflow:auto;border:1px solid #365392;border-radius:20px;background:linear-gradient(155deg,#071426,#030816 68%,#02040d);box-shadow:0 30px 90px #000;padding:18px;color:#fff}
.gl29CreateCard h2,.gl29PostCard h2,.gl29RecorderCard h2{margin:0 0 6px}.gl29Sub{color:#9fb1cd;margin:0 0 14px;line-height:1.45}
.gl29CreateChoices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gl29CreateChoice{border:1px solid #2d4d7c;border-radius:16px;background:#08162b;color:#fff;padding:18px;text-align:left;min-height:130px}.gl29CreateChoice b{display:block;font-size:18px;margin:7px 0}.gl29CreateChoice span{color:#9fb1cd;font-size:12px;line-height:1.45}.gl29CreateChoice i{font-style:normal;font-size:30px}.gl29Close{float:right;width:34px;height:34px;border-radius:50%;border:1px solid #405887;background:#111b31;color:#fff;font-size:22px}
.gl29Field{display:grid;gap:5px;margin:10px 0}.gl29Field label{font-size:11px;color:#b7c7df;font-weight:800;letter-spacing:.35px}.gl29Field textarea,.gl29Field select,.gl29Field input[type=text]{width:100%;border:1px solid #304a75;border-radius:11px;background:#030817;color:#fff;padding:11px}.gl29Field textarea{min-height:88px;resize:vertical}
.gl29PostTools{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.gl29Tool{border:1px solid #304b79;border-radius:12px;background:#08152a;color:#fff;padding:11px 9px;font-size:12px}.gl29Tool b{display:block;margin-top:4px}.gl29Tool.active{border-color:#35cfff;box-shadow:0 0 0 1px #35cfff55 inset;background:#0b2340}
.gl29Preview{min-height:150px;border:1px dashed #334d77;border-radius:14px;background:#020814;display:grid;place-items:center;overflow:auto;padding:10px;color:#8095b6}.gl29PreviewGrid{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.gl29PreviewGrid img,.gl29PreviewGrid video{width:100%;height:145px;object-fit:contain;border-radius:10px;border:1px solid #263e66;background:#000}.gl29PreviewGrid audio{width:100%;grid-column:1/-1}
.gl29Filters{display:flex;gap:7px;overflow:auto;padding-bottom:4px}.gl29Filter{flex:0 0 auto;border:1px solid #304a75;border-radius:999px;background:#071326;color:#aebdd3;padding:7px 11px}.gl29Filter.active{color:#fff;border-color:#36cfff;background:#0e3454}
.gl29Mixer{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gl29Mixer label{display:grid;gap:4px;color:#aebed7;font-size:11px}.gl29Mixer input{width:100%}
.gl29MusicPicker{border:1px solid #29436f;border-radius:14px;background:#051022;overflow:hidden}.gl29MusicHead{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px;border-bottom:1px solid #20385e}.gl29MusicHead small{color:#99abc9}.gl29MusicList{max-height:240px;overflow:auto;padding:7px}.gl29MusicRow{display:grid;grid-template-columns:38px 1fr auto;gap:8px;align-items:center;border-bottom:1px solid #142846;padding:7px}.gl29MusicRow:last-child{border-bottom:0}.gl29MusicRow button{border:1px solid #365078;border-radius:9px;background:#0a1a32;color:#fff;padding:7px}.gl29MusicRow b{display:block;font-size:12px}.gl29MusicRow small{display:block;color:#8fa6c9;font-size:9px}.gl29MusicRow.selected{background:#0b2b43;border-radius:9px}.gl29MusicRow .pick{color:#ffd266}
.gl29Actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:14px}.gl29Status{min-height:18px;color:#8ed7ff;font-size:11px;margin-top:7px}.gl29Rights{border:1px solid #715d26;background:#19170b;border-radius:10px;padding:9px;color:#f1d991;font-size:10px;line-height:1.4;margin-top:10px}
.gl29RecorderPreview{width:100%;max-height:52svh;background:#000;border-radius:13px}.gl29RecorderActions{display:flex;gap:8px;justify-content:center;margin-top:10px}.gl29Recording{color:#ff6681;font-weight:900}
/* Feed media becomes the stage instead of an empty galaxy placeholder. */
.gl29FeedMedia{position:absolute;inset:0;z-index:1;background:#02050d;overflow:hidden}.gl29FeedMedia img{width:100%;height:100%;object-fit:contain;display:block;background:#02050d}.gl29FeedMedia video{width:100%;height:100%;object-fit:cover;display:block}.gl29FeedMedia video{background:#000}.gl29FeedMedia:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 48%,rgba(0,0,0,.78) 92%);pointer-events:none}.feedCard .feedHero,.feedCard .feedActions,.feedCard .feedSpotlight,.feedCard .feedSoundHint{z-index:4!important}.gl29SlideStack{position:absolute;inset:0}.gl29SlideStack img{position:absolute;inset:0;opacity:0;transition:opacity .45s}.gl29SlideStack img.active{opacity:1}.gl29MediaBadge{position:absolute;left:14px;top:48px;z-index:5;border:1px solid #6081b2;background:#061226cc;border-radius:999px;padding:5px 8px;font-size:9px}.gl29SoundGate{position:absolute;left:50%;top:50%;z-index:6;transform:translate(-50%,-50%);border:1px solid #6c86b3;border-radius:999px;background:#030918dc;color:#fff;padding:9px 13px;display:none}.feedCard.gl29AutoplayBlocked .gl29SoundGate{display:block}.gl29PostMusic{display:none}
.gl29AudioPostVisual{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 60% 35%,#6939c866,transparent 26%),radial-gradient(circle at 25% 70%,#0ab5e344,transparent 30%),#05091a;text-align:center}.gl29AudioPostVisual b{font-size:38px}.gl29AudioPostVisual span{display:block;color:#a9bad3;margin-top:8px}
/* Profile tabs now show real post content. */
.gl29ProfilePostGrid{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.gl29ProfilePost{position:relative;aspect-ratio:9/12;border:1px solid #28436d;border-radius:12px;overflow:hidden;background:#071326;padding:0;color:#fff;text-align:left}.gl29ProfilePost img,.gl29ProfilePost video{width:100%;height:100%;object-fit:cover}.gl29ProfilePost .fallback{height:100%;display:grid;place-items:center;padding:10px;text-align:center;background:radial-gradient(circle at 55% 25%,#6239c755,transparent 35%),#071326}.gl29ProfilePost small{position:absolute;left:7px;bottom:7px;right:7px;text-shadow:0 2px 6px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gl29ProfileEmpty{grid-column:1/-1;border:1px solid #29436f;border-radius:14px;background:#061226;padding:18px;color:#9fb1cd}.gl29ProfileEmpty b{display:block;color:#fff;margin-bottom:5px}
/* The missing blueprint utility drawer finally has an explicit trigger. */
#gl29DrawerTrigger,#gl29RoomDrawerTrigger{border:1px solid #34517c;background:#07152a;color:#fff;border-radius:10px;padding:8px 10px;font-size:11px}#gl29RoomDrawerTrigger{flex:0 0 auto!important}
/* 2.8 auto-focus/keyboard layout is superseded: preserve a visible slice of the live stage. */
:root{--gl29-vvh:100svh}
body.gl29Keyboard .bottomNav{display:none!important}body.gl29Keyboard .topbar{display:none!important}body.gl29Keyboard #page-room{min-height:var(--gl29-vvh)!important;height:var(--gl29-vvh)!important;overflow:hidden!important}
body.gl29Keyboard .referenceRoomGrid.interactionOpen{height:var(--gl29-vvh)!important;max-height:var(--gl29-vvh)!important;min-height:0!important;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:minmax(118px,32%) minmax(210px,68%)!important;gap:4px!important;padding:3px!important;overflow:hidden!important}
body.gl29Keyboard .referenceRoomGrid.interactionOpen .referenceStage{min-height:118px!important;height:100%!important;max-height:none!important;overflow:hidden!important;border-radius:10px!important}
body.gl29Keyboard .referenceRoomGrid.interactionOpen .referenceRightPanel{min-height:210px!important;height:100%!important;max-height:none!important;overflow:hidden!important;border-radius:10px!important}
body.gl29Keyboard .referenceRoomGrid.interactionOpen .panelTabs{flex:0 0 auto!important}body.gl29Keyboard .referenceRoomGrid.interactionOpen .panelView{min-height:0!important;overflow:hidden!important}body.gl29Keyboard .referenceRoomGrid.interactionOpen .messages{min-height:0!important;max-height:none!important;overflow:auto!important}body.gl29Keyboard .referenceRightPanel .composer{position:sticky!important;bottom:0!important;background:#030816!important;z-index:20!important}
body.gl29Keyboard .referenceStageMeta{font-size:10px!important;padding:6px 8px!important}.gl29NoAutoFocusNote{font-size:9px;color:#89a1c4}
@media(max-width:620px){.gl29CreateChoices{grid-template-columns:1fr}.gl29PostTools{grid-template-columns:1fr 1fr}.gl29Mixer{grid-template-columns:1fr}.gl29PreviewGrid{grid-template-columns:1fr 1fr}.gl29ProfilePostGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.gl29PostCard{max-height:96svh;border-radius:14px;padding:13px}}

/* 2.12.1 consolidation: composable post media controls. */
.gl29PreviewItem{position:relative;min-width:0;background:#02050d;border-radius:10px;overflow:hidden}.gl29PreviewItem audio{width:100%;min-height:52px}.gl29PreviewRemove{position:absolute;top:5px;right:5px;width:30px;height:30px;border-radius:50%;border:1px solid #6178a7;background:#030817e8;color:#fff;font-size:20px;line-height:24px;z-index:4}.gl29CreateChoices{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:760px){.gl29CreateChoices{grid-template-columns:1fr}}

/* 2.12.1 complete base: image crop / fit / zoom / reposition editor. */
.gl29PreviewEdit{position:absolute;left:6px;bottom:6px;z-index:5;border:1px solid #55bde5;background:#06182ee8;color:#fff;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800}
.gl29ImageEditor{position:fixed;inset:0;z-index:280;background:#000d;display:grid;place-items:center;padding:10px;backdrop-filter:blur(8px)}
.gl29ImageEditorCard{width:min(620px,96vw);max-height:95svh;overflow:auto;border:1px solid #365392;border-radius:18px;background:#061020;color:#fff;padding:14px;box-shadow:0 30px 90px #000}
.gl29ImageStage{height:min(56svh,620px);aspect-ratio:4/5;max-width:100%;margin:10px auto;border:1px solid #2e4b78;border-radius:14px;background:#02050d;overflow:hidden;display:grid;place-items:center}
.gl29ImageStage img{width:100%;height:100%;object-fit:contain;transform-origin:center center;transition:transform .05s linear}
.gl29ImageMode{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.gl29ImageMode button{border:1px solid #304b79;border-radius:10px;background:#08152a;color:#fff;padding:10px}.gl29ImageMode button.active{border-color:#36cfff;background:#0d3554}
.gl29ImageEditorCard>label{display:grid;gap:5px;margin:9px 0;color:#b7c7df;font-size:11px;font-weight:800}.gl29ImageEditorCard input[type=range]{width:100%}.gl29ImageEditorActions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
@media(max-width:620px){.gl29ImageStage{height:auto;width:min(82vw,420px)}.gl29ImageEditorCard{padding:12px}}
