/* Galaxy Live 2.16.0 — productization, interactive landing, guest browsing and creator UX hardening. */
:root{--gl215-safe-bottom:env(safe-area-inset-bottom,0px);--gl215-safe-top:env(safe-area-inset-top,0px)}
html,body{overscroll-behavior-x:none}
button,a,[role="button"]{touch-action:manipulation}

/* Premium public entrance. The approved portrait is the art direction; real controls remain HTML. */
.gl215LandingGate{padding:0!important;overflow:auto!important;display:block!important;background:#01050e!important}
.gl215LandingShell{min-height:100dvh;width:100%;display:grid;place-items:start center;padding:0 0 calc(22px + var(--gl215-safe-bottom));background:radial-gradient(circle at 50% 0,#12366d55,transparent 32%),radial-gradient(circle at 20% 75%,#5316b844,transparent 30%),#01050e}
.gl215LandingArt{position:relative;width:min(100vw,720px);margin:0 auto;isolation:isolate}
.gl215LandingArt img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none}
.gl215Hotspot{position:absolute;z-index:4;border:0!important;background:transparent!important;color:transparent!important;box-shadow:none!important;padding:0!important;border-radius:22px;cursor:pointer}
.gl215Hotspot:focus-visible{outline:3px solid #fff;outline-offset:2px;background:#ffffff10!important}
.gl215HotspotCreate{left:14%;right:14%;top:59.3%;height:5.6%}
.gl215HotspotLogin{left:14%;right:14%;top:65.7%;height:5.5%}
.gl215HotspotGuest{left:30%;right:30%;top:71.6%;height:3.7%}

.gl215HotspotSkip{right:1.5%;top:.4%;width:16%;height:4.2%}
.gl215HotspotInbox{left:3.2%;width:29.4%;top:74.0%;height:8.8%}
.gl215HotspotDating{left:34.1%;width:29.4%;top:74.0%;height:8.8%}
.gl215HotspotBattles{left:65.0%;width:31.5%;top:74.0%;height:8.8%}
.gl215HotspotPlaylists{left:3.2%;width:29.4%;top:83.0%;height:9.2%}
.gl215HotspotWallet{left:34.1%;width:29.4%;top:83.0%;height:9.2%}
.gl215HotspotLiveRooms{left:65.0%;width:31.5%;top:83.0%;height:9.2%}
.gl215LandingFallbackActions{display:none;width:min(92vw,640px);gap:10px;padding:12px 16px}
.gl215LandingFallbackActions button{min-height:54px;border-radius:999px;font-weight:900;font-size:17px}
.gl215CreateCta{border:1px solid #ffd46e;background:linear-gradient(135deg,#c78616,#ffcf5b);color:#08101e}
.gl215LoginCta{border:1px solid #2aa6ff;background:#071326;color:#fff;box-shadow:0 0 18px #179cff55}
.gl215GuestCta{border:0;background:transparent;color:#aeeaff;text-decoration:underline}

.gl215AuthSheet[hidden]{display:none!important}.gl215AuthSheet{position:fixed;inset:0;z-index:10030;background:#000b;display:grid;place-items:end center;padding:12px 12px calc(12px + var(--gl215-safe-bottom));backdrop-filter:blur(10px)}
.gl215AuthSheetCard{width:min(620px,100%);max-height:min(88dvh,780px);overflow:auto;border:1px solid #39629c;border-radius:24px 24px 18px 18px;background:linear-gradient(160deg,#07152af7,#030817fa);box-shadow:0 -20px 90px #000;padding:20px;position:relative}
.gl215AuthClose{position:absolute;right:14px;top:14px;width:38px;height:38px;border-radius:50%;border:1px solid #35527f;background:#081326;color:#fff;font-size:25px}
.gl215AuthMiniBrand{font-size:28px;font-weight:1000;letter-spacing:.2px}.gl215AuthMiniBrand span{color:#ffc94a}.gl215AuthSheetCard h2{margin:10px 0 3px;font-size:30px}.gl215AuthSheetCard>p{margin:0 0 14px;color:#9fb5d5}.gl215AuthForm[hidden]{display:none!important}.gl215AuthForm{display:grid!important;gap:10px}.gl215SwitchAuth{width:100%;margin-top:8px;border:0;background:transparent;color:#72d8ff;padding:10px;font-weight:800}

/* Focused editors must own the viewport. Never bury action buttons under primary nav. */
body.gl215FocusEditor .bottomNav{display:none!important}
body.gl215FocusEditor{overflow:hidden!important}
.gl29PostModal,.gl29ImageEditor{padding-bottom:max(12px,var(--gl215-safe-bottom))!important;align-items:center!important}
.gl29PostCard,.gl29ImageEditorCard{max-height:calc(100dvh - var(--gl215-safe-top) - var(--gl215-safe-bottom) - 18px)!important;overscroll-behavior:contain}
.gl29Actions,.gl29ImageEditorActions{position:sticky;bottom:-1px;z-index:20;background:linear-gradient(180deg,rgba(6,16,32,0),#061020 24%);padding:18px 0 4px;margin-top:8px!important}
.gl29Actions button,.gl29ImageEditorActions button{min-height:44px}

/* Tablet/mobile hamburger drawer gets its own scroll area above the persistent nav. */
@media(max-width:1024px){
  #sidebar{bottom:calc(70px + var(--gl215-safe-bottom))!important;height:auto!important;max-height:calc(100dvh - 70px - var(--gl215-safe-bottom))!important;overflow-y:auto!important;overscroll-behavior:contain!important;padding-bottom:18px!important}
  #sidebar .nav{padding-bottom:12px}
  #sidebar .goLive{margin-top:12px!important;flex:0 0 auto!important}
  .gl29PostModal,.gl29ImageEditor{padding:8px!important;padding-bottom:max(8px,var(--gl215-safe-bottom))!important}
  .gl29PostCard,.gl29ImageEditorCard{width:100%!important;max-width:100%!important;border-radius:14px!important}
  .gl29Actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .gl29Actions button{width:100%!important}
}

/* Feed: use the media stage instead of a small centered image with dead black space. */
.focusDiscover .gl29FeedMedia img,.feedCard .gl29FeedMedia img{object-fit:contain!important;max-width:100%;max-height:100%;margin:auto}
.feedCard:has(.gl29FeedMedia img){background:#02050c!important}
@media(max-width:760px){
  .feedCard{height:calc(100dvh - var(--gl214-topbar,120px) - var(--gl214-bottomnav,70px) - 58px)!important;min-height:480px!important;border-radius:0!important;margin:0!important;border-left:0!important;border-right:0!important}
  .feedShell{max-width:none!important}.pageInner.feedShell{padding-left:0!important;padding-right:0!important}
  .feedTabs{margin:0!important}
}

/* Follow/profile controls need to stay tappable above media overlays. */
.gl214Follow,.gl215CreatorLink{position:relative;z-index:12!important;pointer-events:auto!important;touch-action:manipulation}
.gl214Follow{min-height:38px!important;min-width:98px!important}
.gl215CreatorLink{border:0;background:transparent;color:inherit;padding:0;font-weight:900;text-align:left}

/* Public creator profile sheet. */
.gl215ProfileSheet{position:fixed;inset:0;z-index:390;background:#000c;display:grid;place-items:end center;padding:12px 12px calc(12px + var(--gl215-safe-bottom));backdrop-filter:blur(8px)}
.gl215ProfileCard{width:min(620px,100%);max-height:88dvh;overflow:auto;border:1px solid #36588c;border-radius:24px 24px 16px 16px;background:linear-gradient(160deg,#08172d,#030816);padding:18px;box-shadow:0 -25px 90px #000;position:relative}
.gl215ProfileClose{position:absolute;right:12px;top:12px;width:38px;height:38px;border-radius:50%;border:1px solid #3d5c8a;background:#071225;color:#fff;font-size:24px}.gl215ProfileHead{display:flex;gap:13px;align-items:center;padding-right:46px}.gl215ProfileAvatar{width:82px;height:82px;border-radius:50%;border:2px solid #ffc94a;background:linear-gradient(135deg,#15335f,#51206f);display:grid;place-items:center;font-size:26px;font-weight:1000;overflow:hidden}.gl215ProfileAvatar img{width:100%;height:100%;object-fit:cover}.gl215ProfileHead h2{margin:0}.gl215ProfileHandle{color:#77d7ff}.gl215ProfileBio{color:#a9bad4;line-height:1.45;margin:14px 0}.gl215ProfileStats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.gl215ProfileStats div{border:1px solid #29466f;border-radius:12px;background:#061122;padding:10px;text-align:center}.gl215ProfileStats b{display:block;font-size:18px}.gl215ProfileActions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gl215ProfileActions button{min-height:46px;border-radius:12px}

/* Me dashboard should read like the approved Galaxy cards, not near-black placeholders. */
.profileQuickModules{gap:10px!important}.profileQuickModules button{background:radial-gradient(circle at 90% 15%,#273b8b55,transparent 30%),linear-gradient(145deg,#0b1a35,#061020)!important;border:1px solid #2c5a96!important;box-shadow:inset 0 0 24px #126cff14,0 8px 24px #0005!important;color:#fff!important;min-height:112px!important}.profileQuickModules button b{font-size:17px!important}.profileQuickModules button span{color:#a9bddb!important}

/* YouTube/external playlist inside My Music. */
.gl215ExternalMusic{margin:14px 0;border:1px solid #2a548b;border-radius:18px;background:linear-gradient(145deg,#08172d,#040a16);padding:14px}.gl215ExternalMusic h3{margin:0 0 5px}.gl215ExternalMusic p{margin:0 0 10px;color:#9fb2d0}.gl215ExternalAdd{display:grid;grid-template-columns:1fr auto;gap:8px}.gl215ExternalAdd input{min-width:0;border:1px solid #31517e;border-radius:11px;background:#020817;color:#fff;padding:11px;font-size:16px}.gl215ExternalList{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-top:12px}.gl215ExternalItem{border:1px solid #284871;border-radius:13px;background:#050e1d;overflow:hidden}.gl215ExternalItem iframe{width:100%;aspect-ratio:16/9;border:0;background:#000}.gl215ExternalItem .body{padding:10px;display:grid;gap:7px}.gl215ExternalItem .actions{display:flex;gap:7px;flex-wrap:wrap}.gl215ExternalItem a{color:#74d7ff;text-decoration:none}
@media(max-width:620px){.gl215ExternalAdd{grid-template-columns:1fr}.gl215ExternalAdd button{width:100%}.gl215ProfileStats{grid-template-columns:repeat(3,1fr)}.gl215LandingArt{width:100vw}.gl215AuthSheet{padding:0}.gl215AuthSheetCard{border-radius:24px 24px 0 0;max-height:92dvh}}

/* Camera appearance presets — lightweight, device-safe visual enhancement. */
.gl215CameraFilters{display:flex;gap:6px;overflow-x:auto;padding:6px 0;margin:5px 0}.gl215CameraFilters button{flex:0 0 auto;border:1px solid #31517f;border-radius:999px;background:#071326;color:#a9bbd5;padding:7px 10px;font-size:11px}.gl215CameraFilters button.active{color:#fff;border-color:#29e8ff;background:#0b2c48}.gl215Filter-enhance{filter:brightness(1.08) contrast(1.04) saturate(1.08)}.gl215Filter-vivid{filter:contrast(1.1) saturate(1.35)}.gl215Filter-warm{filter:sepia(.16) saturate(1.15) brightness(1.03)}.gl215Filter-cool{filter:hue-rotate(9deg) saturate(1.08) brightness(1.02)}.gl215Filter-mono{filter:grayscale(1) contrast(1.08)}.gl215Filter-galaxy{filter:saturate(1.35) contrast(1.08) drop-shadow(0 0 8px #6d4aff)}

/* Route/debug status. */
.gl215GuestBanner{position:fixed;left:50%;top:calc(8px + var(--gl215-safe-top));transform:translateX(-50%);z-index:900;background:#071327e8;border:1px solid #3d6aa0;border-radius:999px;padding:8px 12px;color:#fff;font-size:12px;box-shadow:0 8px 28px #0008}.gl215GuestBanner button{border:0;background:transparent;color:#6fddff;font-weight:900}
.gl215GuestPreviewPanel{margin:10px 0 16px;padding:20px;border:1px solid #3a6198;border-radius:18px;background:radial-gradient(circle at 90% 0,#7638ff44,transparent 35%),linear-gradient(145deg,#0a1b36,#040a16);box-shadow:0 14px 35px #0006}.gl215GuestPreviewPanel>span{color:#67dbff;font-size:11px;font-weight:900;letter-spacing:1.5px}.gl215GuestPreviewPanel h2{margin:6px 0}.gl215GuestPreviewPanel p{color:#b0c0d8;line-height:1.5;max-width:720px}.gl215GuestPreviewPanel button{min-height:46px;border-radius:12px}
.gl215GuestMusic{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin:12px 0}.gl215GuestMusic label{display:grid;gap:7px;padding:10px;border:1px solid #294a78;border-radius:12px;background:#040c19;font-weight:800}.gl215GuestMusic audio{width:100%;height:38px}
.gl29MixHelp{margin:-3px 0 12px;padding:9px 11px;border:1px solid #29456d;border-radius:10px;background:#061123;color:#9fb7d8;font-size:12px;line-height:1.45}
