/* Web 11 preview: pixel/animation port of GB VIP Android Build 38.
   Android OS system bars are replaced with browser safe-area variables.
   Original styles.css 10.1 and its Cloudflare assets remain intact. */
html.gb-web-v11 {
 --gb-os-top: env(safe-area-inset-top,0px);
 --gb-os-bottom: env(safe-area-inset-bottom,0px);
 --gb-os-left: env(safe-area-inset-left,0px);
 --gb-os-right: env(safe-area-inset-right,0px);
}
/* GB VIP Android: host FrameLayout owns OS status/gesture bar insets. */
html.gb-web-v11,html.gb-web-v11 body{min-height:100%;}
html.gb-web-v11 .topbar,
html.gb-web-v11.gb-mobile-device .topbar,
html.gb-web-v11.mobile-touch .topbar{
  top:7px!important;
  margin:7px 12px 0!important;
}
html.gb-web-v11 .mobile-nav,
html.gb-web-v11.gb-mobile-device .mobile-nav,
html.gb-web-v11.mobile-touch .mobile-nav{
  bottom:10px!important;
  inset-block-end:10px!important;
}
html.gb-web-v11 .page,
html.gb-web-v11.gb-mobile-device .page,
html.gb-web-v11.mobile-touch .page{
  padding-bottom:159px!important;
}
html.gb-web-v11 .login-screen{
  box-sizing:border-box;
  min-height:100dvh;
  padding:28px 22px!important;
  display:flex;
  align-items:center;
  justify-content:center;
}
html.gb-web-v11 .login-card,
html.gb-web-v11.gb-mobile-device .login-card{
  box-sizing:border-box;
  width:100%;
  max-width:450px!important;
  min-height:345px;
  padding:42px 34px!important;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  border-radius:32px!important;
  box-shadow:0 24px 70px rgba(0,0,0,.32);
}
html.gb-web-v11 .login-logo{font-size:86px!important;line-height:1.12;text-align:center;margin:0;}
html.gb-web-v11 .login-card .micro{
  margin:0!important;font-size:12px;letter-spacing:.21em;text-align:center;
}
html.gb-web-v11 .login-card button[data-action="login"]{
  display:flex;align-items:center;justify-content:center;
  width:100%;max-width:345px;min-height:62px;
  gap:13px;border-radius:19px;
  padding:16px!important;margin:11px 0 0;
  font-size:16px;font-weight:750;white-space:nowrap;
}
html.gb-web-v11 .login-card button[data-action="login"] .google-mark,
html.gb-web-v11 .login-card button[data-action="login"] .google-mark svg{
  width:29px;height:29px;flex:none;
}
html.gb-web-v11 .login-card button[data-action="login"] .google-mark{background:#fff;border-radius:9px;padding:3px;box-sizing:content-box;}
@media(max-width:370px){
 html.gb-web-v11 .login-card{padding:35px 20px!important;}
 html.gb-web-v11 .login-card button[data-action="login"]{font-size:14px;gap:9px;}
}


/* GB VIP 1.0 · edge-to-edge gallery + compact glass + tactile responses.
   Android Kotlin sends real status/gesture insets via --gb-os-* variables.
   Do not modify the original Cloudflare website. */
html.gb-web-v11 {
 --gb-os-top: 28px;
 --gb-os-bottom: 22px;
 --gb-os-left: 0px;
 --gb-os-right: 0px;
 color-scheme:dark;
}
html.gb-web-v11, html.gb-web-v11 body, html.gb-web-v11 #app {
 min-height:100dvh;
}
html.gb-web-v11 body { margin:0!important; background-color:#0b0e19; }
html.gb-web-v11 .site-main {width:100%;max-width:none;overflow:visible;}
/* Header sits BELOW the camera and status glyphs, but pictures pass underneath. */
html.gb-web-v11 .topbar,
html.gb-web-v11.gb-mobile-device .topbar,
html.gb-web-v11.mobile-touch .topbar {
 top:calc(var(--gb-os-top) + 6px)!important;
 margin:calc(var(--gb-os-top) + 6px) 13px 0!important;
 margin-left:calc(var(--gb-os-left) + 13px)!important;
 margin-right:calc(var(--gb-os-right) + 13px)!important;
}
html.gb-web-v11 .toprow,
html.gb-web-v11.gb-mobile-device .toprow,
html.gb-web-v11.mobile-touch .toprow {
 min-height:56px!important;
 padding:6px 11px!important;
 gap:8px!important;
 border-radius:21px!important;
}
html.gb-web-v11 .brandbtn {gap:9px!important;min-width:0;}
html.gb-web-v11 .brandmark {font-size:33px!important;line-height:1!important;}
html.gb-web-v11 .brandline{height:26px!important;}
html.gb-web-v11 .brandlabel{font-size:9px!important;line-height:1.35!important;letter-spacing:.1em!important;}
html.gb-web-v11 .account{gap:7px!important;}
html.gb-web-v11 .avatar{width:35px!important;height:35px!important;border-radius:50%!important;}
html.gb-web-v11 .account-more{width:35px!important;height:35px!important;border-radius:14px!important;}
/* Keep the bottom pill above gesture navigation while content fills beneath it. */
html.gb-web-v11 .mobile-nav,
html.gb-web-v11.gb-mobile-device .mobile-nav,
html.gb-web-v11.mobile-touch .mobile-nav {
 position:fixed!important;
 inset:auto calc(var(--gb-os-right) + 13px) calc(var(--gb-os-bottom) + 5px) calc(var(--gb-os-left) + 13px)!important;
 width:auto!important;
 padding:5px!important;
 gap:5px!important;
 border-radius:23px!important;
}
html.gb-web-v11 .mobile-nav button,
html.gb-web-v11.gb-mobile-device .mobile-nav button,
html.gb-web-v11.mobile-touch .mobile-nav button {
 min-height:57px!important;
 padding:7px 2px!important;
 gap:3px!important;
 border-radius:18px!important;
}
html.gb-web-v11 .mobile-nav button svg {width:19px;height:19px;}
html.gb-web-v11 .mobile-nav small{font-size:10px!important;line-height:1.1;}
html.gb-web-v11 .mobile-nav .gb-liquid-indicator {top:5px;bottom:5px;border-radius:18px;}
/* Nearly edge-to-edge photo cards, with enough gap to avoid tap mistakes. */
html.gb-web-v11 .page,
html.gb-web-v11.gb-mobile-device .page,
html.gb-web-v11.mobile-touch .page {
 box-sizing:border-box;
 padding-left:calc(var(--gb-os-left) + 8px)!important;
 padding-right:calc(var(--gb-os-right) + 8px)!important;
 padding-bottom:calc(var(--gb-os-bottom) + 113px)!important;
}
html.gb-web-v11 .photos-grid,
html.gb-web-v11.gb-mobile-device .photos-grid,
html.gb-web-v11.mobile-touch .photos-grid {gap:11px 9px!important;}
/* System glyphs stay legible while photography scrolls under them. */
html.gb-web-v11 body::before {
 top:0!important;
 height:calc(var(--gb-os-top) + 75px)!important;
 background:linear-gradient(to bottom,rgba(8,11,20,.65),rgba(8,11,20,.32) 60%,transparent)!important;
}
html.gb-web-v11 body::after {
 bottom:0!important;
 height:calc(var(--gb-os-bottom) + 105px)!important;
 background:linear-gradient(to top,rgba(8,11,20,.60),rgba(8,11,20,.25) 60%,transparent)!important;
}
/* Dialogs stop BELOW the camera and ABOVE navigation; neither can be tapped under OS chrome. */
html.gb-web-v11 .modal-layer {
 padding:calc(var(--gb-os-top) + 8px) calc(var(--gb-os-right) + 12px)
         calc(var(--gb-os-bottom) + 8px) calc(var(--gb-os-left) + 12px)!important;
 box-sizing:border-box;
}
html.gb-web-v11 .sheet {max-height:calc(100dvh - var(--gb-os-top) - var(--gb-os-bottom) - 16px)!important;}
html.gb-web-v11 .multi-toolbar {bottom:calc(var(--gb-os-bottom) + 88px)!important;}
html.gb-web-v11 .floating-progress,
html.gb-web-v11 #toast {bottom:calc(var(--gb-os-bottom) + 94px)!important;}
/* Only the pressed card gets an extra compositing layer. No GPU cost across the whole gallery. */
html.gb-web-v11 .shot-card.gb-native-pressed .shot-shell {
 transform:scale(.984)!important;
 filter:brightness(1.035);
 transition:transform .12s ease-out,filter .12s ease-out!important;
}
html.gb-web-v11 .shot-card.gb-native-released .shot-shell {
 transform:scale(1)!important;
 filter:brightness(1)!important;
 transition:transform .30s cubic-bezier(.14,.85,.22,1.12),filter .20s ease-out!important;
}
/* Existing 10.0 sheet animation strengthened for account menus. */
html.gb-web-v11 .modal-layer {animation:gbAndroidVeil .18s ease both;}
html.gb-web-v11 .modal-layer .sheet {animation:gbAndroidSheet .31s cubic-bezier(.16,.82,.2,1) both;}
@keyframes gbAndroidVeil {from{opacity:0}to{opacity:1}}
@keyframes gbAndroidSheet {
 from{opacity:.35;transform:translateY(17px) scale(.969)}
 65%{opacity:1;transform:translateY(-2px) scale(1.005)}
 to{opacity:1;transform:translateY(0) scale(1)}
}
@media(prefers-reduced-motion:reduce){
 html.gb-web-v11 .shot-card.gb-native-pressed .shot-shell,
 html.gb-web-v11 .shot-card.gb-native-released .shot-shell,
 html.gb-web-v11 .modal-layer,html.gb-web-v11 .modal-layer .sheet {
  animation:none!important;transition:none!important;transform:none!important;filter:none!important;
 }
}


/* =============================================================
   GB VIP Android 1.0 · FLOATING ISLANDS + MATTE MOTION (build 9)
   APK-only styling; Cloudflare CSS and JS are unchanged.
   ============================================================= */
/* Two truly independent panes: no full-width blur stripe behind them. */
html.gb-web-v11 .topbar,
html.gb-web-v11.gb-mobile-device .topbar,
html.gb-web-v11.mobile-touch .topbar{
 position:fixed!important;
 top:calc(var(--gb-os-top) + 8px)!important;
 left:calc(var(--gb-os-left) + 12px)!important;
 right:calc(var(--gb-os-right) + 12px)!important;
 width:auto!important;
 margin:0!important;
 padding:0!important;
 border:0!important;
 border-radius:0!important;
 background:transparent!important;
 background-image:none!important;
 box-shadow:none!important;
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
 pointer-events:none;
 z-index:45!important;
}
html.gb-web-v11 .toprow,
html.gb-web-v11.gb-mobile-device .toprow,
html.gb-web-v11.mobile-touch .toprow{
 display:flex!important;
 align-items:center!important;
 justify-content:space-between!important;
 min-height:0!important;
 gap:14px!important;
 max-width:none!important;
 width:100%!important;
 margin:0!important;
 padding:0!important;
 border:0!important;
 border-radius:0!important;
 background:transparent!important;
 box-shadow:none!important;
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
}
html.gb-web-v11 .toprow .tabs{display:none!important;}
html.gb-web-v11 .topbar .brandbtn,
html.gb-web-v11 .topbar .account{
 pointer-events:auto;
 height:54px!important;
 box-sizing:border-box;
 display:flex!important;
 align-items:center!important;
 border-radius:22px!important;
 background:linear-gradient(137deg,rgba(39,47,72,.86),rgba(23,28,47,.80))!important;
 border:1px solid rgba(185,201,249,.26)!important;
 -webkit-backdrop-filter:blur(20px) saturate(135%)!important;
 backdrop-filter:blur(20px) saturate(135%)!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.11),0 8px 24px rgba(2,5,15,.26)!important;
}
html.gb-web-v11 .topbar .brandbtn{
 flex:0 0 auto!important;
 justify-content:center!important;
 min-width:82px!important;
 padding:6px 18px!important;
 gap:0!important;
}
html.gb-web-v11 .topbar .brandmark{
 font-size:35px!important;
 line-height:1!important;
 letter-spacing:-.12em!important;
}
html.gb-web-v11 .topbar .brandline,
html.gb-web-v11 .topbar .brandlabel {display:none!important;}
html.gb-web-v11 .topbar .account{
 flex:0 0 auto!important;
 justify-content:center!important;
 padding:5px 7px!important;
 gap:8px!important;
 min-width:93px!important;
}
html.gb-web-v11 .topbar .account-text {display:none!important;}
html.gb-web-v11 .topbar .avatar{
 width:39px!important;height:39px!important;border-radius:50%!important;
 border:1px solid rgba(199,210,255,.5)!important;
}
html.gb-web-v11 .topbar .account-more{
 width:38px!important;height:38px!important;
 border-radius:50%!important;
 background:rgba(189,202,249,.09)!important;
 border:1px solid rgba(196,207,255,.22)!important;
}
html.gb-web-v11 .topbar .account-more:active,
html.gb-web-v11 .topbar .brandbtn:active{filter:brightness(1.13);}
html.gb-web-v11 .site-main {padding-top:calc(var(--gb-os-top) + 72px)!important;}
/* Keep the lower persistent navigation above the transition fog. */
html.gb-web-v11 .mobile-nav{z-index:48!important;}
/* Matte veil stays BELOW both floating islands and navigation.
   Fade in, swap once, then fade out. No flashing empty DOM between tabs. */
html.gb-web-v11 .gb-route-veil{
 position:fixed;inset:0;z-index:38;
 pointer-events:none;
 opacity:0;
 background:linear-gradient(165deg,rgba(11,15,30,.61),rgba(15,20,37,.72) 56%,rgba(10,14,27,.59));
 -webkit-backdrop-filter:blur(4px) saturate(85%);
 backdrop-filter:blur(4px) saturate(85%);
 transition:opacity .17s cubic-bezier(.2,.75,.25,1);
}
html.gb-web-v11 .gb-route-veil.gb-veil-visible{opacity:1;}
@keyframes gbNativePageReveal{
 from{opacity:.64;transform:translate3d(0,7px,0)}
 to{opacity:1;transform:translate3d(0,0,0)}
}
html.gb-web-v11 .gb-page-arriving{
 animation:gbNativePageReveal .27s cubic-bezier(.16,.82,.22,1) both;
}
html.gb-web-v11 .gb-route-enter .section-head,
html.gb-web-v11 .gb-route-enter .gallery-toolbar,
html.gb-web-v11 .gb-route-enter .table-topline,
html.gb-web-v11 .gb-route-enter #photo-results,
html.gb-web-v11 .gb-route-enter .table-scroller{animation:none!important;}
@media(max-width:350px){
 html.gb-web-v11 .topbar .brandbtn{min-width:68px!important;padding:5px 14px!important;}
 html.gb-web-v11 .topbar .account{min-width:85px!important;gap:5px!important;}
}
@media(prefers-reduced-motion:reduce){
 html.gb-web-v11 .gb-route-veil{transition:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;}
 html.gb-web-v11 .gb-page-arriving{animation:none!important;}
}


/* ================================================================
   GB VIP Android 1.0 · PHOTO VIEWER COMPACT FIX (build 10)
   Only APK photo/lightbox UI; does not change gallery data or OAuth.
   ================================================================ */
/* Fix stacking: the photo viewer MUST be above floating GB islands
   (z 45), bottom navigation (z 48) and matte transition veil (z 38). */
html.gb-web-v11 .modal-layer,
html.gb-web-v11 body .modal-layer {
  z-index:120!important;
  box-sizing:border-box!important;
  inset:0!important;
  width:100%!important;
  height:100dvh!important;
  max-height:100dvh!important;
  padding:calc(var(--gb-os-top) + 10px) calc(var(--gb-os-right) + 12px)
          calc(var(--gb-os-bottom) + 12px) calc(var(--gb-os-left) + 12px)!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
}
/* Hide floating controls under the dialog, rather than leaving
   their click targets and glowing borders hovering over the photo. */
html.gb-web-v11 body.modal-open .topbar,
html.gb-web-v11 body.modal-open .mobile-nav {
  opacity:0!important;
  pointer-events:none!important;
}
html.gb-web-v11 .topbar,
html.gb-web-v11 .mobile-nav { transition:opacity .18s ease; }
html.gb-web-v11 .modal-layer .sheet {
  box-sizing:border-box!important;
  max-height:100%!important;
}

@media (max-width:650px) {
  /* A short, single centered photo viewer, not a full-screen wall.
     Scrolling happens INSIDE it, so all four action buttons remain reachable. */
  html.gb-web-v11 .modal-layer .photo-sheet {
    width:min(100%,460px)!important;
    max-width:460px!important;
    height:auto!important;
    max-height:100%!important;
    padding:6px!important;
    border-radius:25px;
    overflow:hidden!important;
    display:block!important;
  }
  html.gb-web-v11 .modal-layer .photo-dialog {
    display:flex!important;
    flex-direction:column!important;
    position:relative!important;
    min-height:0!important;
    height:auto!important;
    max-height:calc(100dvh - var(--gb-os-top) - var(--gb-os-bottom) - 36px)!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  html.gb-web-v11 .modal-layer .photo-dialog::-webkit-scrollbar {display:none;}
  html.gb-web-v11 .modal-layer .photo-dialog-image {
    flex:0 0 auto!important;
    box-sizing:border-box!important;
    width:100%!important;
    height:min(45dvh,485px)!important;
    min-height:0!important;
    max-height:none!important;
    border-radius:19px!important;
  }
  html.gb-web-v11 .modal-layer .photo-dialog-image img {
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-height:100%!important;
    object-fit:contain!important;
  }
  html.gb-web-v11 .modal-layer .photo-dialog-side {
    flex:0 0 auto!important;
    min-width:0!important;
    padding:12px 10px 14px!important;
  }
  html.gb-web-v11 .modal-layer .photo-dialog-header {
    min-height:25px!important;
    padding:0 2px!important;
    margin-bottom:8px!important;
  }
  html.gb-web-v11 .modal-layer .photo-dialog-header .eyebrow {
    font-size:10px!important;
    letter-spacing:.11em!important;
  }
  /* Close is visible immediately, without scrolling under the actions. */
  html.gb-web-v11 .modal-layer .photo-dialog-close {
    position:absolute!important;
    top:12px!important;
    right:12px!important;
    z-index:4!important;
    display:grid!important;
    place-items:center!important;
    width:42px!important;
    height:42px!important;
    border-radius:15px!important;
    color:#f2f4ff!important;
    border:1px solid rgba(202,210,255,.4)!important;
    background:rgba(23,29,50,.8)!important;
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
  }
  html.gb-web-v11 .modal-layer .photo-dialog-side h2 {
    font-size:17px!important;
    line-height:1.35!important;
    letter-spacing:-.025em!important;
    margin:0 2px 10px!important;
    overflow-wrap:anywhere;
  }
  html.gb-web-v11 .modal-layer .photo-dialog-actions {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    padding:0!important;
    margin:0!important;
  }
  html.gb-web-v11 .modal-layer .photo-dialog-actions .btn {
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:44px!important;
    height:auto!important;
    padding:9px 8px!important;
    margin:0!important;
    border-radius:14px!important;
    font-size:11.5px!important;
    line-height:1.3!important;
    white-space:normal!important;
    text-align:center!important;
    justify-content:center!important;
    align-items:center!important;
    gap:6px!important;
  }
  html.gb-web-v11 .modal-layer .photo-dialog-actions .btn svg {
    width:16px!important;height:16px!important;flex-shrink:0;
  }
}
@media (max-width:650px) and (max-height:650px) {
  html.gb-web-v11 .modal-layer .photo-dialog-image {
    height:min(34dvh,245px)!important;
  }
  html.gb-web-v11 .modal-layer .photo-dialog-side {
    padding:8px 10px 12px!important;
  }
}
@media (prefers-reduced-motion:reduce) {
  html.gb-web-v11 .topbar,html.gb-web-v11 .mobile-nav {transition:none!important;}
}

/* GB VIP Android build 13: compact Focus tile, no register-driven guest ID. */
.focus-page .photos-grid {align-items:start}
.focus-page .shot-card {display:flex;flex-direction:column;gap:5px;min-width:0}
.focus-page .shot-shell {border-bottom-left-radius:18px;border-bottom-right-radius:18px}
.vip-work-card {position:relative;min-width:0;isolation:isolate;overflow:hidden;
 border:1px solid rgba(197,207,245,.30);border-radius:18px;
 background:linear-gradient(143deg,rgba(63,76,111,.78) 0%,rgba(33,43,67,.94) 36%,rgba(14,19,35,.97) 100%);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.17),0 7px 20px rgba(0,0,0,.19);color:#edf0ff;
 -webkit-backdrop-filter:blur(20px) saturate(130%);backdrop-filter:blur(20px) saturate(130%);}
.vip-work-card::before {content:'';pointer-events:none;position:absolute;left:-10%;right:-10%;top:-24px;height:65px;
 background:radial-gradient(ellipse at 35% 0%,rgba(205,214,255,.23),transparent 73%);}
.vip-work-open {width:100%;min-width:0;position:relative;display:flex;flex-direction:column;gap:6px;text-align:left;
 border:0;padding:11px 42px 11px 11px;background:transparent;color:inherit;cursor:pointer;
 -webkit-tap-highlight-color:transparent;}
.vip-work-open:focus-visible,.vip-work-edit:focus-visible {outline:2px solid #e4d2ad;outline-offset:-2px}
.vip-work-name {display:block;font-weight:800;font-size:clamp(10px,2.7vw,13px);line-height:1.3;letter-spacing:-.015em;overflow-wrap:anywhere;padding-right:0;}
.vip-work-id {display:block;min-width:0;color:#aebbd9;font-size:9px;font-weight:700;line-height:1.55;letter-spacing:.015em;overflow-wrap:anywhere;}
.vip-work-id b {font-size:10px;color:#f5deb0;font-weight:800}
.vip-work-id i {font-style:normal;padding:0 3px;color:#6e7e9f}
.vip-work-hint {color:#8898bb;font-size:9px;line-height:1.3}
.vip-work-edit {position:absolute;top:7px;right:7px;z-index:2;display:grid;place-items:center;
 width:31px;height:31px;min-width:31px;border-radius:11px;border:1px solid rgba(210,221,255,.24);
 background:linear-gradient(155deg,rgba(192,204,245,.22),rgba(77,94,137,.18));color:#e8edff;cursor:pointer;}
.vip-work-metrics {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;width:100%;padding-top:5px;
 border-top:1px solid rgba(204,216,250,.12);}
.vip-metric {min-width:0;display:flex;flex-direction:column;gap:1px;overflow-wrap:anywhere;}
.vip-metric small {font-size:7px;color:#94a5ca;letter-spacing:.065em;font-weight:800;}
.vip-metric b {font-size:10px;font-weight:800;color:#f0f3ff;line-height:1.25;}
.vip-work-dates {display:flex;flex-wrap:wrap;align-items:center;gap:3px;min-width:0;color:#b6c4e4;font-size:9px;font-weight:700;padding-top:4px;border-top:1px solid rgba(204,216,250,.12);}
.vip-work-dates span {display:inline-flex;gap:4px;align-items:center;min-width:0}
.vip-date-arrow {color:#e6cd97;padding:0 2px}
.vip-edit-sheet .sheet-sub {font-size:12px;line-height:1.55;}
.vip-edit-sheet .form-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;}
.vip-edit-sheet .form-field {min-width:0}
.vip-edit-sheet .form-field input {min-width:0;width:100%;box-sizing:border-box;}
.vip-preview-sheet {width:min(95vw,660px);border-radius:27px;padding:9px;background:linear-gradient(155deg,#293249,#161d2f 50%,#0b101b);box-shadow:0 28px 90px #000a}
.vip-preview {position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:11px}
.vip-preview-close {position:absolute;z-index:3;right:16px;top:16px;background:#111a29dd;border-radius:50%;color:white}
.vip-preview-photo {position:relative;display:grid;place-items:center;width:100%;height:min(67dvh,650px);min-height:220px;border-radius:21px;background:#090e19;overflow:hidden}
.vip-preview-photo img {max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;opacity:0;transform:scale(.94);filter:blur(7px);transition:opacity .34s ease,transform .56s cubic-bezier(.19,1,.22,1),filter .4s}
.vip-preview-photo.loaded img {opacity:1;transform:scale(1);filter:none}
.vip-preview h2 {text-align:center;margin:4px 4px 8px;font-size:clamp(18px,4vw,28px);letter-spacing:.015em;color:#f0f4ff;overflow-wrap:anywhere}
@media(max-width:600px){
 .vip-work-card {border-radius:16px}
 .vip-work-open {padding:9px 35px 9px 9px;gap:5px}
 .vip-work-name {font-size:11px}
 .vip-work-id {font-size:8px}
 .vip-work-id b {font-size:9px}
 .vip-work-hint {font-size:8px}
 .vip-work-metrics {gap:2px}
 .vip-metric b {font-size:9px}
 .vip-metric small {font-size:7px}
 .vip-work-dates {font-size:8px}
 .vip-work-edit {top:6px;right:6px;width:27px;min-width:27px;height:27px;border-radius:9px}
 .vip-preview-photo {height:min(65dvh,550px)}
}
@media(prefers-reduced-motion:reduce){.vip-preview-photo img{transition:none}}

/* ========== BUILD 14: ONE UNIFIED VIP CARD, FOCUS ONLY ========== */
html.gb-web-v11 .focus-page .photos-grid {align-items:start;gap:14px 10px!important;}
html.gb-web-v11 .focus-page .shot-card.focus-vip-card {min-width:0;display:block;overflow:visible;}
html.gb-web-v11 .focus-page .focus-vip-shell,
html.gb-web-v11 .focus-page .focus-vip-card:hover .focus-vip-shell {
 position:relative;display:flex;flex-direction:column;gap:0;
 padding:5px!important;overflow:hidden!important;isolation:isolate;
 border:1px solid rgba(186,201,248,.38)!important;border-radius:25px!important;
 background:linear-gradient(145deg,#343e5a 0%,#222b41 45%,#11182a 100%)!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 20px #0005!important;
 transform:none!important;
}
html.gb-web-v11 .focus-page .focus-vip-photo {position:relative;min-width:0;}
/* Focus selection uses the whole outer border; suppress the duplicated floating check. */
html.gb-web-v11 .focus-page .focus-vip-photo .select-mark {display:none!important;}
html.gb-web-v11 .focus-page .focus-vip-shell .shot-open {
 width:100%;display:block;aspect-ratio:3/4;margin:0;padding:0;
 border-radius:19px!important;overflow:hidden;
 box-shadow:0 4px 12px #0005;background:#131725;
}
html.gb-web-v11 .focus-page .focus-vip-shell .shot-open img {width:100%;height:100%;object-fit:cover;}
html.gb-web-v11 .focus-page .focus-vip-shell .card-switch {position:absolute!important;z-index:4;top:8px!important;right:8px!important;left:auto!important;bottom:auto!important;}
html.gb-web-v11 .focus-page .focus-vip-shell .select-mark {z-index:4;}
html.gb-web-v11 .focus-page .focus-vip-shell .vip-work-card {
 position:relative;display:flex;flex-direction:column;gap:0;isolation:auto;
 border:0!important;border-radius:0!important;box-shadow:none!important;
 background:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;
 padding:13px 9px 8px!important;color:#f4f5ff;overflow:visible;
}
html.gb-web-v11 .focus-page .focus-vip-shell .vip-work-card::before {display:none!important;content:none!important;}
html.gb-web-v11 .focus-page .vip-unified-heading {min-width:0;display:flex;flex-direction:column;gap:4px;margin-bottom:11px;}
html.gb-web-v11 .focus-page .vip-work-name {font-size:clamp(12px,3.3vw,16px)!important;line-height:1.25;font-weight:800;letter-spacing:-.025em;overflow-wrap:anywhere;color:#fff;}
html.gb-web-v11 .focus-page .vip-unified-kicker {font-size:8px;font-weight:850;letter-spacing:.17em;color:#abbbe5;}
html.gb-web-v11 .focus-page .vip-unified-primary,
html.gb-web-v11 .focus-page .vip-unified-dates {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 8px;}
html.gb-web-v11 .focus-page .vip-unified-finance {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;}
html.gb-web-v11 .focus-page .vip-unified-primary,
html.gb-web-v11 .focus-page .vip-unified-finance,
html.gb-web-v11 .focus-page .vip-unified-dates {padding:9px 0;border-top:1px solid rgba(200,213,255,.17);}
html.gb-web-v11 .focus-page .vip-unified-metric {display:flex;flex-direction:column;gap:3px;min-width:0;}
html.gb-web-v11 .focus-page .vip-unified-metric span {font-size:8px;letter-spacing:.06em;font-weight:800;color:#aebddd;}
html.gb-web-v11 .focus-page .vip-unified-metric strong {font-size:clamp(10px,2.6vw,13px);font-weight:800;color:#f6f2e8;overflow-wrap:anywhere;line-height:1.25;}
html.gb-web-v11 .focus-page .vip-unified-primary .vip-unified-metric:first-child strong {color:#f6db9a;}
html.gb-web-v11 .focus-page .vip-edit-cta {display:flex;align-items:center;justify-content:center;gap:7px;
 width:100%;min-height:43px;margin-top:5px;padding:9px 8px!important;
 border-radius:15px;border:1px solid rgba(204,216,255,.36);
 color:#f2f4ff;background:linear-gradient(133deg,rgba(149,167,229,.26),rgba(102,122,185,.16));
 font-size:clamp(10px,2.8vw,13px);font-weight:800;cursor:pointer;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.11);-webkit-tap-highlight-color:transparent;
}
html.gb-web-v11 .focus-page .vip-edit-cta:active {background:rgba(174,192,251,.32);transform:scale(.985);}
html.gb-web-v11 .focus-page .vip-edit-cta svg {flex:none;}
html.gb-web-v11 .modal-layer .vip-edit-sheet {width:min(100%,510px)!important;max-height:100%!important;overflow-y:auto!important;padding:19px!important;border-radius:27px!important;overscroll-behavior:contain;}
html.gb-web-v11 .vip-edit-sheet .vip-edit-section-label {font-size:10px;font-weight:850;color:#d8c99e;letter-spacing:.11em;text-transform:uppercase;margin:15px 0 1px;}
html.gb-web-v11 .vip-edit-sheet .form-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 11px;}
html.gb-web-v11 .vip-edit-sheet .form-field {min-width:0;margin:8px 0!important;font-size:11px;}
html.gb-web-v11 .vip-edit-sheet .form-field input {min-width:0;width:100%;height:48px;box-sizing:border-box;
 border-radius:14px;background:#121a2c;border:1px solid #576485;color:#fff;font-size:14px;padding:12px!important;}
html.gb-web-v11 .vip-edit-sheet .form-field input:focus {border-color:#cbd5ff;outline:1px solid #cbd5ff;}
html.gb-web-v11 .vip-edit-sheet .sheet-actions {margin-top:20px;position:sticky;bottom:-19px;z-index:5;padding:15px 0 19px;justify-content:space-between;flex-wrap:nowrap;background:linear-gradient(0deg,#1b2030 80%,rgba(27,32,48,.85));}
html.gb-web-v11 .vip-edit-sheet .sheet-actions .btn{min-width:0;flex:1;white-space:normal;}
html.gb-web-v11 .vip-edit-sheet .sheet-actions .btn.primary {min-height:49px;font-weight:800;}
@media(min-width:700px){html.gb-web-v11 .focus-page .vip-work-card {padding:16px 13px 11px!important}}
@media(max-width:360px){
 html.gb-web-v11 .focus-page .focus-vip-shell .vip-work-card {padding:11px 7px 7px!important;}
 html.gb-web-v11 .focus-page .vip-unified-metric span {font-size:7px;}
 html.gb-web-v11 .focus-page .vip-unified-metric strong {font-size:10px;}
}
@media(prefers-reduced-motion:reduce){html.gb-web-v11 .focus-page .vip-edit-cta {transition:none!important}}



/* ============= BUILD 15: SINGLE WIDE VIP PANEL / MINI PORTRAIT ============= */
/* Only Focus. Archive thumbnails and viewer behavior are unchanged. */
html.gb-web-v11 .focus-page .photos-grid,
html.gb-mobile-device .focus-page .photos-grid {
  grid-template-columns:minmax(0,1fr)!important;
  gap:14px!important;
  align-items:start!important;
}
html.gb-web-v11 .focus-page .focus-vip-card { min-width:0; }
html.gb-web-v11 .focus-page .focus-vip-shell,
html.gb-web-v11 .focus-page .focus-vip-card:hover .focus-vip-shell {
  display:block!important;
  padding:13px!important;
  border-radius:25px!important;
  background:linear-gradient(145deg,rgba(55,67,98,.97),rgba(30,41,65,.98) 48%,rgba(18,27,48,.99))!important;
  border:1px solid rgba(190,206,248,.37)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.14),0 9px 22px #0004!important;
  transform:none!important;
}
html.gb-web-v11 .focus-page .focus-vip-header {
  display:flex;align-items:center;gap:14px;min-height:84px;
  padding-bottom:12px;
}
html.gb-web-v11 .focus-page .focus-vip-photo {
  width:82px!important;height:82px!important;min-width:82px!important;min-height:82px!important;
  flex:0 0 82px!important;position:relative;border-radius:19px!important;
  overflow:hidden!important;
  border:1px solid rgba(203,215,254,.44);
  background:#11192a;
  box-shadow:0 5px 14px #0006,inset 0 1px #ffffff24;
}
html.gb-web-v11 .focus-page .focus-vip-shell .focus-vip-photo .shot-open {
  position:relative!important;width:100%!important;height:100%!important;
  aspect-ratio:1!important;border:0!important;display:block!important;
  border-radius:18px!important;margin:0!important;padding:0!important;
  overflow:hidden!important;background:#11192a!important;
}
/* A square FACE close-up, not an entire printed-ID photo squashed to 2 cm.
   The opened original keeps all pixels and its printed text. */
html.gb-web-v11 .focus-page .focus-vip-photo .shot-open img {
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  object-fit:cover!important;object-position:50% 45%!important;
  transform:scale(1.48)!important;transform-origin:50% 48%!important;
}
html.gb-web-v11 .focus-page .focus-vip-identity {
  flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;
}
html.gb-web-v11 .focus-page .focus-vip-identity-name {
  color:#f6f7ff;font-size:clamp(16px,4.2vw,20px);line-height:1.25;
  letter-spacing:-.018em;font-weight:800;overflow-wrap:anywhere;
}
html.gb-web-v11 .focus-page .vip-unified-kicker {font-size:10px!important;letter-spacing:.15em!important;color:#aec1eb!important;}
html.gb-web-v11 .focus-page .focus-vip-header .card-switch {
  position:static!important;inset:auto!important;flex:0 0 37px!important;
  width:37px!important;height:37px!important;border-radius:13px!important;
  z-index:4;align-self:flex-start;
}
html.gb-web-v11 .focus-page .focus-vip-photo .select-mark {display:none!important;}
html.gb-web-v11 .focus-page .focus-vip-shell .vip-work-card {
  padding:0!important;margin:0!important;
  display:flex!important;flex-direction:column!important;
  border:0!important;background:transparent!important;
  border-radius:0!important;box-shadow:none!important;overflow:visible!important;
}
html.gb-web-v11 .focus-page .vip-work-card::before {display:none!important;content:none!important;}
html.gb-web-v11 .focus-page .vip-unified-primary,
html.gb-web-v11 .focus-page .vip-unified-finance,
html.gb-web-v11 .focus-page .vip-unified-dates {
  display:grid!important;gap:11px 13px!important;
  padding:13px 2px!important;
  border-top:1px solid rgba(194,212,253,.20)!important;
}
html.gb-web-v11 .focus-page .vip-unified-primary,
html.gb-web-v11 .focus-page .vip-unified-dates {grid-template-columns:repeat(2,minmax(0,1fr))!important;}
html.gb-web-v11 .focus-page .vip-unified-finance {grid-template-columns:repeat(3,minmax(0,1fr))!important;}
html.gb-web-v11 .focus-page .vip-unified-metric {gap:7px!important;min-width:0!important;}
html.gb-web-v11 .focus-page .vip-unified-metric span {
  font-size:10px!important;line-height:1.3!important;font-weight:800!important;
  letter-spacing:.08em!important;color:#9eafd7!important;
}
html.gb-web-v11 .focus-page .vip-unified-metric strong {
  font-size:clamp(13px,3.6vw,16px)!important;line-height:1.3!important;font-weight:800!important;
  overflow-wrap:anywhere!important;color:#f3f4ff!important;
}
html.gb-web-v11 .focus-page .vip-unified-primary .vip-unified-metric:first-child strong {color:#f5d994!important;}
html.gb-web-v11 .focus-page .vip-edit-cta {
  display:flex!important;min-height:44px!important;padding:10px 14px!important;
  margin-top:5px!important;font-size:14px!important;
  align-items:center!important;justify-content:center!important;
  gap:9px!important;border-radius:15px!important;
}
/* Exact-fit photo viewer: no 65vh-tall black image container. */
html.gb-web-v11 .modal-layer .vip-preview-sheet {
  width:min(100%,650px)!important;max-width:650px!important;
  height:auto!important;max-height:100%!important;
  overflow:visible!important;padding:7px!important;
  border-radius:25px;
}
html.gb-web-v11 .vip-preview-sheet .vip-preview {
  padding:5px!important;gap:9px!important;align-items:center!important;
}
html.gb-web-v11 .vip-preview-sheet .vip-preview-photo {
  position:relative!important;display:grid!important;place-items:center!important;
  width:min(100%,var(--vip-image-width,100%))!important;
  height:var(--vip-image-height,auto)!important;
  aspect-ratio:1!important;min-height:0!important;max-height:none!important;
  margin:0 auto!important;overflow:hidden!important;
  border-radius:19px!important;background:#101827!important;
}
html.gb-web-v11 .vip-preview-sheet .vip-preview-photo img {
  display:block!important;position:absolute!important;inset:0!important;
  width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;
  object-fit:fill!important;margin:0!important;
}
html.gb-web-v11 .vip-preview-sheet .vip-preview-photo:not(.loaded) {
  height:min(75vw,470px)!important;aspect-ratio:1!important;
}
html.gb-web-v11 .vip-preview-sheet .vip-preview h2 {
  font-size:clamp(17px,4.4vw,24px)!important;line-height:1.25!important;
  margin:6px 7px 8px!important;
}
html.gb-web-v11 .vip-preview-sheet .vip-preview-close {right:16px!important;top:16px!important;}
@media(max-width:420px){
 html.gb-web-v11 .focus-page .focus-vip-shell {padding:11px!important;}
 html.gb-web-v11 .focus-page .focus-vip-header {gap:10px;}
 html.gb-web-v11 .focus-page .focus-vip-photo {width:75px!important;height:75px!important;min-width:75px!important;min-height:75px!important;flex-basis:75px!important;}
 html.gb-web-v11 .focus-page .focus-vip-identity-name {font-size:16px;}
}
@media(prefers-reduced-motion:reduce){
 html.gb-web-v11 .vip-preview-sheet .vip-preview-photo img {transition:none!important;}
}

/* =============================================================
   GB VIP Android 1.0 · BUILD 16 — PRIVATE LIQUID GLASS REFINEMENT
   APK local assets ONLY. Website, shared DB and auth unchanged.
   ============================================================= */
html.gb-web-v11 {
 --gb-glass-stroke:rgba(207,222,255,.34);
 --gb-glass-reflection:rgba(245,248,255,.18);
 --gb-glass-shadow:0 16px 48px rgba(2,5,18,.30);
}
/* Two-tab island, sized for two destinations rather than the former three. */
html.gb-web-v11 .mobile-nav,
html.gb-web-v11.gb-mobile-device .mobile-nav,
html.gb-web-v11.mobile-touch .mobile-nav {
 left:50%!important;
 right:auto!important;
 width:min(330px,calc(100vw - var(--gb-os-left) - var(--gb-os-right) - 52px))!important;
 max-width:330px!important;
 transform:translate3d(-50%,0,0)!important;
 grid-template-columns:repeat(2,minmax(0,1fr))!important;
 display:grid!important;
 padding:6px!important;
 gap:5px!important;
 bottom:calc(var(--gb-os-bottom) + 7px)!important;
 inset-block-end:calc(var(--gb-os-bottom) + 7px)!important;
 border-radius:27px!important;
 border:1px solid rgba(215,226,255,.34)!important;
 background:linear-gradient(149deg,rgba(75,88,124,.41),rgba(32,40,70,.56) 48%,rgba(22,29,52,.62))!important;
 -webkit-backdrop-filter:blur(27px) saturate(166%)!important;
 backdrop-filter:blur(27px) saturate(166%)!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -1px 0 rgba(151,169,223,.12),0 16px 45px rgba(0,5,23,.35),0 0 30px rgba(139,162,229,.07)!important;
}
html.gb-web-v11 .mobile-nav::before {
 content:'';position:absolute;pointer-events:none;z-index:0;
 left:15px;right:15px;top:1px;height:19px;
 border-radius:50%;background:radial-gradient(ellipse at center,rgba(243,247,255,.16),transparent 72%);
}
html.gb-web-v11 .mobile-nav button,
html.gb-web-v11.gb-mobile-device .mobile-nav button,
html.gb-web-v11.mobile-touch .mobile-nav button {
 min-width:0!important;min-height:56px!important;
 padding:7px 5px!important;gap:3px!important;
 border-radius:20px!important;
 background:transparent!important;
 transition:color .22s ease,transform .26s cubic-bezier(.22,.9,.26,1)!important;
}
html.gb-web-v11 .mobile-nav button:active {transform:scale(.963)!important;}
html.gb-web-v11 .mobile-nav small {font-size:11px!important;letter-spacing:-.012em!important;}
html.gb-web-v11 .mobile-nav .gb-liquid-indicator {
 top:6px!important;bottom:6px!important;border-radius:20px!important;
 border-color:rgba(233,241,255,.37)!important;
 background:linear-gradient(150deg,rgba(210,224,255,.37),rgba(137,164,239,.27) 51%,rgba(103,133,217,.21))!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.37),inset 0 -1px 0 rgba(255,255,255,.06),0 7px 18px rgba(64,89,159,.25)!important;
}
/* A horizontal page movement (not the previous full-screen fog replacement). */
html.gb-web-v11 .site-main {position:relative!important;}
html.gb-web-v11 .site-main.gb-horizontal-transition {isolation:isolate;}
html.gb-web-v11 .site-main.gb-horizontal-transition > .page.gb-slide-leaving {
 position:absolute!important;inset:0 0 auto!important;width:100%!important;
 max-height:calc(100dvh + 70px)!important;overflow:hidden!important;
 pointer-events:none!important;z-index:1!important;
}
html.gb-web-v11 .site-main.gb-horizontal-transition > .page.gb-slide-entering {
 position:relative!important;z-index:2!important;
}
@keyframes gbSlideExitLeft {from{transform:translate3d(0,0,0);opacity:1}to{transform:translate3d(-100%,0,0);opacity:.84}}
@keyframes gbSlideExitRight{from{transform:translate3d(0,0,0);opacity:1}to{transform:translate3d(100%,0,0);opacity:.84}}
@keyframes gbSlideEnterRight{from{transform:translate3d(100%,0,0);opacity:.94}to{transform:translate3d(0,0,0);opacity:1}}
@keyframes gbSlideEnterLeft {from{transform:translate3d(-100%,0,0);opacity:.94}to{transform:translate3d(0,0,0);opacity:1}}
html.gb-web-v11 .gb-slide-to-left{animation:gbSlideExitLeft .40s cubic-bezier(.22,.81,.24,1) both!important;}
html.gb-web-v11 .gb-slide-to-right{animation:gbSlideExitRight .40s cubic-bezier(.22,.81,.24,1) both!important;}
html.gb-web-v11 .gb-slide-from-right{animation:gbSlideEnterRight .40s cubic-bezier(.22,.81,.24,1) both!important;}
html.gb-web-v11 .gb-slide-from-left{animation:gbSlideEnterLeft .40s cubic-bezier(.22,.81,.24,1) both!important;}
html.gb-web-v11 body, html.gb-web-v11 #app {overflow-x:clip!important;}
/* Matte translucent hierarchy; cards are light on GPU, dialogs and islands frosted. */
html.gb-web-v11 .topbar .brandbtn,
html.gb-web-v11 .topbar .account {
 background:linear-gradient(142deg,rgba(90,107,149,.44),rgba(36,45,77,.50))!important;
 border:1px solid var(--gb-glass-stroke)!important;
 -webkit-backdrop-filter:blur(24px) saturate(152%)!important;
 backdrop-filter:blur(24px) saturate(152%)!important;
 box-shadow:inset 0 1px 0 var(--gb-glass-reflection),var(--gb-glass-shadow)!important;
}
html.gb-web-v11 .focus-page .focus-vip-shell {
 background:linear-gradient(152deg,rgba(72,87,124,.72),rgba(33,43,72,.84) 53%,rgba(21,30,55,.93))!important;
 border:1px solid rgba(209,224,255,.39)!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 10px 27px rgba(1,5,18,.23)!important;
}
html.gb-web-v11 .focus-page .focus-vip-shell::before{
 content:'';position:absolute;z-index:0;pointer-events:none;
 inset:1px 4px auto;height:60px;
 background:radial-gradient(ellipse at 33% 0%,rgba(221,231,255,.13),transparent 73%);
}
html.gb-web-v11 .focus-page .focus-vip-shell > * {position:relative;z-index:1;}
html.gb-web-v11 .focus-page .vip-edit-cta,
html.gb-web-v11 .btn:not(.muted-danger),
html.gb-web-v11 .select-trigger {
 border:1px solid rgba(209,223,255,.35)!important;
 background:linear-gradient(142deg,rgba(155,177,232,.29),rgba(91,109,162,.19))!important;
 box-shadow:inset 0 1px 0 rgba(250,252,255,.22),0 4px 13px rgba(5,10,31,.12)!important;
}
html.gb-web-v11 .btn:active, html.gb-web-v11 .vip-edit-cta:active {filter:brightness(1.09);}
html.gb-web-v11 .modal-layer .sheet,
html.gb-web-v11 .login-card {
 background:linear-gradient(152deg,rgba(62,75,113,.90),rgba(30,39,69,.94) 54%,rgba(16,23,44,.97))!important;
 border:1px solid rgba(212,224,255,.36)!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.19),0 22px 70px rgba(1,4,18,.50)!important;
 -webkit-backdrop-filter:blur(26px) saturate(138%)!important;
 backdrop-filter:blur(26px) saturate(138%)!important;
}
html.gb-web-v11 .modal-layer input:not([type="checkbox"]),
html.gb-web-v11 .modal-layer textarea,
html.gb-web-v11 .modal-layer select {
 border:1px solid rgba(194,209,246,.28)!important;
 background:rgba(10,17,35,.48)!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important;
 color:#f5f6ff!important;
}
html.gb-web-v11 .modal-layer input:focus-visible,
html.gb-web-v11 .modal-layer textarea:focus-visible {
 outline:2px solid rgba(168,198,255,.76)!important;outline-offset:1px!important;
}
html.gb-web-v11 #toast {
 background:linear-gradient(146deg,rgba(75,94,145,.90),rgba(32,44,79,.94))!important;
 border:1px solid rgba(216,230,255,.35)!important;
 -webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%);
}
@media(prefers-reduced-motion:reduce){
 html.gb-web-v11 .gb-slide-to-left,html.gb-web-v11 .gb-slide-to-right,
 html.gb-web-v11 .gb-slide-from-right,html.gb-web-v11 .gb-slide-from-left{animation:none!important;}
 html.gb-web-v11 .mobile-nav button{transition:none!important;}
}

/* =============================================================
   GB VIP Android BUILD 17 — centered slim dock / gentle route motion
   APP-ONLY visual patch. No shared backend or collection data changes.
   ============================================================= */
/* About 8.5% narrower than Build 16. Keep two full-size tap targets. */
html.gb-web-v11 .mobile-nav,
html.gb-web-v11.gb-mobile-device .mobile-nav,
html.gb-web-v11.mobile-touch .mobile-nav {
  width:min(302px,calc(100vw - var(--gb-os-left) - var(--gb-os-right) - 72px))!important;
  max-width:302px!important;
  left:50%!important;
  right:auto!important;
  transform:translate3d(-50%,0,0)!important;
}
/* Match the glass highlight to the page glide, without a spring snap. */
html.gb-web-v11 .mobile-nav .gb-liquid-indicator,
html.gb-web-v11 .tabs .gb-liquid-indicator {
  transition:transform .72s cubic-bezier(.4,0,.2,1),
             width .72s cubic-bezier(.4,0,.2,1),
             border-radius .72s cubic-bezier(.4,0,.2,1)!important;
}
/* Gentle full two-page slide. Transform/opacity only (GPU composited). */
@keyframes gb17SlideExitLeft {
  0% {transform:translate3d(0,0,0);opacity:1;}
  100% {transform:translate3d(-82%,0,0);opacity:.72;}
}
@keyframes gb17SlideExitRight {
  0% {transform:translate3d(0,0,0);opacity:1;}
  100% {transform:translate3d(82%,0,0);opacity:.72;}
}
@keyframes gb17SlideEnterRight {
  0% {transform:translate3d(82%,0,0);opacity:.73;}
  100% {transform:translate3d(0,0,0);opacity:1;}
}
@keyframes gb17SlideEnterLeft {
  0% {transform:translate3d(-82%,0,0);opacity:.73;}
  100% {transform:translate3d(0,0,0);opacity:1;}
}
html.gb-web-v11 .gb-slide-to-left {
  animation:gb17SlideExitLeft .74s cubic-bezier(.4,0,.2,1) both!important;
}
html.gb-web-v11 .gb-slide-to-right {
  animation:gb17SlideExitRight .74s cubic-bezier(.4,0,.2,1) both!important;
}
html.gb-web-v11 .gb-slide-from-right {
  animation:gb17SlideEnterRight .74s cubic-bezier(.4,0,.2,1) both!important;
}
html.gb-web-v11 .gb-slide-from-left {
  animation:gb17SlideEnterLeft .74s cubic-bezier(.4,0,.2,1) both!important;
}
/* Accessibility: respect system settings, no forced navigation animation. */
@media (prefers-reduced-motion:reduce) {
 html.gb-web-v11 .gb-slide-to-left,
 html.gb-web-v11 .gb-slide-to-right,
 html.gb-web-v11 .gb-slide-from-right,
 html.gb-web-v11 .gb-slide-from-left {animation:none!important;}
 html.gb-web-v11 .mobile-nav .gb-liquid-indicator,
 html.gb-web-v11 .tabs .gb-liquid-indicator {transition:none!important;}
}


/* ================================================================
   GB VIP BUILD 17 — soft matte edge veil during vertical scroll.
   Inspired by reading surfaces: status/gesture glyphs remain legible,
   pictures fade under those bars. Dock, menu and modals remain crisp.
   ================================================================ */
html.gb-web-v11 body::before,
html.gb-web-v11 body::after {
  pointer-events:none!important;
  z-index:9!important;
  opacity:0!important;
  -webkit-backdrop-filter:blur(4px) saturate(86%)!important;
  backdrop-filter:blur(4px) saturate(86%)!important;
  transition:opacity .34s cubic-bezier(.2,.65,.2,1)!important;
  will-change:opacity;
}
html.gb-web-v11 body::before {
  top:0!important;
  height:calc(var(--gb-os-top) + 135px)!important;
  background:linear-gradient(to bottom,
     rgba(10,13,25,.95) 0%,rgba(12,16,31,.80) 31%,
     rgba(15,20,37,.40) 69%,rgba(14,18,34,0) 100%)!important;
}
html.gb-web-v11 body::after {
  bottom:0!important;
  height:calc(var(--gb-os-bottom) + 146px)!important;
  background:linear-gradient(to top,
     rgba(10,13,25,.95) 0%,rgba(12,16,31,.78) 31%,
     rgba(15,20,37,.37) 70%,rgba(14,18,34,0) 100%)!important;
}
html.gb-web-v11 body.gb-edge-top-active::before {opacity:1!important;}
html.gb-web-v11 body.gb-edge-bottom-active::after {opacity:1!important;}
/* The photo/dialog layer must remain clear; the modal has its own backdrop. */
html.gb-web-v11 body.modal-open::before,
html.gb-web-v11 body.modal-open::after {opacity:0!important;}
@media(prefers-reduced-motion:reduce) {
  html.gb-web-v11 body::before,
  html.gb-web-v11 body::after {transition:none!important;}
}


/* ================================================================
   GB VIP ANDROID BUILD 18 - clean edge darkness and instant navigation.
   PREVENT hard-edged backdrop-blur bands (the Build 17 regression).
   The gradients fade to 0 alpha so there is NO visible horizontal seam.
   ================================================================ */
html.gb-web-v11 body::before,
html.gb-web-v11 body::after {
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  -webkit-filter:none!important;
  filter:none!important;
  pointer-events:none!important;
  opacity:0!important;
  will-change:auto!important;
  transition:opacity .19s ease-out!important;
  box-shadow:none!important;
  border:0!important;
  transform:none!important;
  z-index:9!important;
}
html.gb-web-v11 body::before {
  top:0!important;
  height:calc(var(--gb-os-top) + 77px)!important;
  background:linear-gradient(to bottom,
    rgba(10,14,27,.96) 0%,
    rgba(10,14,27,.87) 19%,
    rgba(10,14,27,.60) 43%,
    rgba(10,14,27,.27) 73%,
    rgba(10,14,27,.06) 91%,
    rgba(10,14,27,0) 100%)!important;
}
html.gb-web-v11 body::after {
  bottom:0!important;
  height:calc(var(--gb-os-bottom) + 103px)!important;
  background:linear-gradient(to top,
    rgba(10,14,27,.94) 0%,
    rgba(10,14,27,.83) 19%,
    rgba(10,14,27,.55) 42%,
    rgba(10,14,27,.25) 70%,
    rgba(10,14,27,.05) 91%,
    rgba(10,14,27,0) 100%)!important;
}
html.gb-web-v11 body.gb-edge-top-active::before {opacity:1!important;}
html.gb-web-v11 body.gb-edge-bottom-active::after {opacity:1!important;}
html.gb-web-v11 body.modal-open::before,
html.gb-web-v11 body.modal-open::after {opacity:0!important;}

/* A QUICK settle (no 82% lateral travel, no double DOM pages).
   Less than 0.2s, leaving the photos crisp and navigation responsive. */
@keyframes gb18QuickPageSettle {
  from {opacity:.96;transform:translate3d(5px,0,0)}
  to   {opacity:1;transform:translate3d(0,0,0)}
}
html.gb-web-v11 .site-main > .page.gb18-page-arriving {
  animation:gb18QuickPageSettle .18s cubic-bezier(.2,.75,.22,1) both!important;
}
html.gb-web-v11 .mobile-nav .gb-liquid-indicator,
html.gb-web-v11 .tabs .gb-liquid-indicator {
  transition:transform .23s cubic-bezier(.18,.78,.22,1),
             width .23s cubic-bezier(.18,.78,.22,1),
             border-radius .23s cubic-bezier(.18,.78,.22,1)!important;
}
@media(prefers-reduced-motion:reduce) {
  html.gb-web-v11 .site-main > .page.gb18-page-arriving{animation:none!important;}
  html.gb-web-v11 .mobile-nav .gb-liquid-indicator,
  html.gb-web-v11 .tabs .gb-liquid-indicator {transition:none!important;}
  html.gb-web-v11 body::before,html.gb-web-v11 body::after{transition:none!important;}
}

/* GB VIP Build 20: BRAIS-inspired compositor-only shell motion.
   No moving galleries, duplicated guest images, large blur animations. */
html.gb-web-v11 .gb20-motion-portal {
 position:fixed!important;z-index:152!important;pointer-events:none!important;
 box-sizing:border-box!important;transform-origin:top left!important;
 border:1px solid rgba(213,227,255,.43)!important;border-radius:22px!important;
 background:linear-gradient(145deg,#384765,#202b44 57%,#131e33)!important;
 box-shadow:inset 0 1px rgba(255,255,255,.23),0 10px 24px rgba(1,6,19,.22)!important;
 will-change:transform,opacity!important;
 contain:paint;
}
html.gb-web-v11 .gb20-motion-portal.gb20-account-portal {border-radius:27px!important;}
html.gb-web-v11 .modal-layer.gb20-modal {animation:none!important;}
html.gb-web-v11 .modal-layer.gb20-modal .sheet {
 animation:none!important;
 -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
 transition:opacity .115s ease-out!important;
 will-change:opacity!important;
}
html.gb-web-v11 .modal-layer.gb20-opening .sheet {opacity:0!important;}
html.gb-web-v11 .modal-layer.gb20-opening.gb20-reveal .sheet {opacity:1!important;}
html.gb-web-v11 .modal-layer.gb20-closing .sheet {opacity:0!important;transition-duration:.085s!important;}
html.gb-web-v11 .modal-layer.gb20-modal .modal-backdrop {
 -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
 background:rgba(4,7,17,.74)!important;
 transition:opacity .22s ease-out!important;
}
html.gb-web-v11 .modal-layer.gb20-opening .modal-backdrop {opacity:1!important;}
html.gb-web-v11 .modal-layer.gb20-closing .modal-backdrop {opacity:0!important;}
/* Absolutely no blur/scale animation of a large photograph on mobile GPU. */
html.gb-web-v11 .gb20-modal .vip-preview-photo img,
html.gb-web-v11 .gb20-modal .photo-dialog-image img {
 filter:none!important;transform:none!important;
 transition:opacity .14s ease-out!important;
}
html.gb-web-v11 .gb20-modal .vip-preview-photo.loaded img {opacity:1!important;}
@media(prefers-reduced-motion:reduce){
 html.gb-web-v11 .gb20-motion-portal {display:none!important;}
 html.gb-web-v11 .modal-layer.gb20-modal .sheet {transition:none!important;}
}


/* GB VIP Android Build 21: ONE uninterrupted content+glass morph.
   Only the dialog layer is animated; there is no second photo, ghost layer,
   backdrop blur, or delayed content transition. */
html.gb-web-v11 .modal-layer.gb21-modal,
html.gb-web-v11 .modal-layer.gb21-modal .sheet {
 animation:none!important;
 transition:none!important;
}
html.gb-web-v11 .modal-layer.gb21-modal .sheet {
 -webkit-backdrop-filter:none!important; backdrop-filter:none!important;
 transform-origin:top left!important;
 backface-visibility:hidden;
}
html.gb-web-v11 .modal-layer.gb21-modal .modal-backdrop {
 -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
 background:rgba(4,7,17,.73)!important;
 animation:none!important;transition:none!important;
}
html.gb-web-v11 .gb21-modal .vip-preview-photo img,
html.gb-web-v11 .gb21-modal .photo-dialog-image img {
 filter:none!important;transform:none!important;opacity:1!important;transition:none!important;
}
html.gb-web-v11 .gb21-modal .vip-preview-photo.loaded img {opacity:1!important;}
@media(prefers-reduced-motion:reduce){
 html.gb-web-v11 .modal-layer.gb21-modal .sheet {transform:none!important;will-change:auto!important;}
}

/* Build 22: reversible single-layer popup. No opening/closing shadow rectangles. */
html.gb-web-v11 .modal-layer.gb22-modal,
html.gb-web-v11 .modal-layer.gb22-modal .sheet,
html.gb-web-v11 .modal-layer.gb22-modal .modal-backdrop {
 animation:none!important;transition:none!important;
}
html.gb-web-v11 .modal-layer.gb22-modal .sheet {
 transform-origin:0 0!important;
 border-radius:26px;
 overflow:hidden!important;
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
 backface-visibility:hidden;
 contain:paint;
}
html.gb-web-v11 .modal-layer.gb22-modal .modal-backdrop {
 background:rgba(4,7,17,.73)!important;
 -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
html.gb-web-v11 .modal-layer.gb22-modal .vip-preview-photo img,
html.gb-web-v11 .modal-layer.gb22-modal .photo-dialog-image img {
 opacity:1!important;transform:none!important;filter:none!important;
 transition:none!important;animation:none!important;
}
@media(prefers-reduced-motion:reduce){
 html.gb-web-v11 .modal-layer.gb22-modal .sheet {transform:none!important;will-change:auto!important;}
}

/* Build 23: streamlined compositor for Android WebView; no scroll/page changes. */
html.gb-web-v11 .modal-layer.gb22-modal .sheet {
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
 filter:none!important;
 isolation:isolate;
 contain:paint;
 transform-style:flat;
}
html.gb-web-v11 .modal-layer.gb22-modal .modal-backdrop {
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
 filter:none!important;
}
html.gb-web-v11 .modal-layer.gb22-modal .vip-preview-photo,
html.gb-web-v11 .modal-layer.gb22-modal .photo-dialog-image {
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
}
html.gb-web-v11 .modal-layer.gb22-modal .vip-preview-photo img,
html.gb-web-v11 .modal-layer.gb22-modal .photo-dialog-image img {
 will-change:auto!important;
 backface-visibility:hidden;
}
/* Account panel gets the same clipped rounded surface as shared photos. */
html.gb-web-v11 .modal-layer.gb22-modal:not(:has(.photo-sheet,.vip-preview-sheet)) .sheet {
 border-radius:26px!important;
 overflow:hidden!important;
 box-shadow:0 14px 42px rgba(2,5,18,.36),inset 0 1px 0 rgba(255,255,255,.20)!important;
}

/* Build 24: one anchored account surface. APK only. */
html.gb-web-v11 .modal-layer.gb24-account-layer {
  place-items:start end!important;
  align-items:start!important;justify-items:end!important;
  padding-top:calc(var(--gb-os-top) + 76px)!important;
  padding-right:calc(var(--gb-os-right) + 18px)!important;
}
html.gb-web-v11 .modal-layer.gb24-account-layer .gb24-account-sheet {
  width:min(340px,calc(100vw - 36px))!important;
  max-width:340px!important;
  margin:0!important;
  border-radius:26px!important;
  overflow:hidden!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  box-shadow:0 18px 46px rgba(3,7,23,.34),inset 0 1px rgba(255,255,255,.18)!important;
}
html.gb-web-v11 .modal-layer.gb24-account-layer .modal-backdrop {
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
/* Scrolling: avoid expensive raster filters on the two photo grids. */
html.gb-web-v11 .photos-grid .shot-card,
html.gb-web-v11 .focus-page .focus-vip-shell {
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}


/* GB VIP APK Build 25 — account island only.
   No transform:scale for menu text: animate the small surface's box geometry.
   This section deliberately does NOT affect photo modals or gallery CSS. */
html.gb-web-v11 body.gb25-account-open .topbar {
 opacity:1!important;
 pointer-events:none!important;
}
html.gb-web-v11 body.gb25-account-open .topbar .account.gb25-account-origin-hidden {
 visibility:hidden!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer {
 animation:none!important;
 overflow:hidden!important;
 pointer-events:auto!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer .modal-backdrop {
 background:rgba(3,6,18,.67)!important;
 backdrop-filter:none!important;
 -webkit-backdrop-filter:none!important;
 animation:none!important;
 transition:opacity .24s ease!important;
 opacity:0;
}
html.gb-web-v11 .modal-layer.gb25-account-layer.gb25-expanded .modal-backdrop {opacity:1;}
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-sheet {
 position:fixed!important;
 z-index:2!important;
 box-sizing:border-box!important;
 left:var(--gb25-from-left,calc(100vw - 110px))!important;
 top:var(--gb25-from-top,90px)!important;
 width:var(--gb25-from-width,98px)!important;
 height:var(--gb25-from-height,64px)!important;
 max-height:none!important;
 min-height:0!important;
 max-width:none!important;
 margin:0!important;
 padding:0!important;
 border-radius:34px!important;
 overflow:hidden!important;
 overflow:clip!important;
 background:linear-gradient(145deg,#374361,#222d47 55%,#18233a)!important;
 border:1px solid rgba(215,228,255,.44)!important;
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
 animation:none!important;
 transition:left .335s cubic-bezier(.20,.75,.24,1),
            top .335s cubic-bezier(.20,.75,.24,1),
            width .335s cubic-bezier(.20,.75,.24,1),
            height .335s cubic-bezier(.20,.75,.24,1),
            border-radius .335s cubic-bezier(.20,.75,.24,1)!important;
 transform:none!important;
 transform-origin:center center!important;
 will-change:auto!important;
 box-shadow:inset 0 1px rgba(255,255,255,.20),0 14px 44px rgba(2,6,21,.32)!important;
 contain:layout paint;
}
html.gb-web-v11 .modal-layer.gb25-account-layer.gb25-expanded .gb25-account-sheet {
 left:var(--gb25-to-left,14px)!important;
 top:var(--gb25-to-top,100px)!important;
 width:var(--gb25-to-width,340px)!important;
 height:var(--gb25-to-height,196px)!important;
 border-radius:26px!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-content {
 padding:18px 19px 20px;
 opacity:0;
 pointer-events:none;
 white-space:normal;
 transition:opacity .15s ease-out!important;
 position:relative;
 z-index:1;
}
html.gb-web-v11 .modal-layer.gb25-account-layer.gb25-expanded .gb25-account-content {
 opacity:1;
 pointer-events:auto;
 transition-delay:.075s!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-mini {
 position:absolute;
 inset:0;
 display:flex;
 justify-content:space-evenly;
 align-items:center;
 opacity:1;
 z-index:2;
 pointer-events:none;
 transition:opacity .10s linear!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer.gb25-expanded .gb25-account-mini {opacity:0;}
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-mini .avatar {
 width:40px;height:40px;flex:none;border-radius:50%;overflow:hidden;
}
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-dots {
 border-radius:50%;font-size:12px;letter-spacing:1px;color:#eff1ff;
 height:40px;width:40px;display:flex;align-items:center;justify-content:center;
 background:rgba(214,224,255,.10);border:1px solid rgba(223,229,255,.22);
}
/* Hidden offscreen layout pass to derive content height without paint. */
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-sheet.gb25-measuring {
 left:-2000px!important;top:-2000px!important;
 width:var(--gb25-to-width,340px)!important;
 height:auto!important;max-height:none!important;
 visibility:hidden!important;
 transition:none!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer:not(.gb25-ready):not(.gb25-account-instant) .gb25-account-sheet {visibility:hidden!important;}
html.gb-web-v11 .modal-layer.gb25-account-layer.gb25-account-instant .gb25-account-sheet {
 left:14px!important;top:110px!important;width:calc(100vw - 28px)!important;
 height:auto!important;transition:none!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer.gb25-account-instant .gb25-account-content {opacity:1!important;pointer-events:auto;}
html.gb-web-v11 .modal-layer.gb25-account-layer.gb25-account-instant .gb25-account-mini {display:none!important;}
@media(prefers-reduced-motion:reduce){
 html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-sheet,
 html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-content,
 html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-mini,
 html.gb-web-v11 .modal-layer.gb25-account-layer .modal-backdrop {transition:none!important;}
}


/* GB VIP Android 26 — one capsule, one size. ACCOUNT ONLY.
   The trigger and the moving panel share the same glass, radius and avatar/dots
   dimensions, so the final handoff cannot jump to a smaller rounded rectangle.
   No changes to photo previews, cards, navigation or server logic. */
html.gb-web-v11 .topbar .account {
  box-sizing:border-box!important;
  height:58px!important;
  min-width:112px!important;
  padding:6px 9px!important;
  gap:9px!important;
  border-radius:29px!important;
  background:linear-gradient(145deg,rgba(58,72,108,.96),rgba(31,43,71,.96) 54%,rgba(24,33,56,.97))!important;
  border:1px solid rgba(215,228,255,.40)!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  box-shadow:inset 0 1px rgba(255,255,255,.19),0 10px 28px rgba(2,6,21,.28)!important;
}
html.gb-web-v11 .topbar .account .avatar,
html.gb-web-v11 .topbar .account .account-more {
  width:42px!important;height:42px!important;
  flex:0 0 42px!important;
  border-radius:50%!important;
}
html.gb-web-v11 .topbar .account .account-more svg {
  width:21px!important;height:21px!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-sheet,
html.gb-web-v11 .modal-layer.gb25-account-layer.gb25-expanded .gb25-account-sheet {
  border-radius:29px!important;
  background:linear-gradient(145deg,rgba(58,72,108,.96),rgba(31,43,71,.96) 54%,rgba(24,33,56,.97))!important;
  border:1px solid rgba(215,228,255,.40)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.19),0 10px 28px rgba(2,6,21,.28)!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-sheet {
  overflow:hidden!important;
  /* Only four geometric properties move; rounded corners NEVER morph again. */
  transition:left .335s cubic-bezier(.20,.75,.24,1),
             top .335s cubic-bezier(.20,.75,.24,1),
             width .335s cubic-bezier(.20,.75,.24,1),
             height .335s cubic-bezier(.20,.75,.24,1)!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-mini {
  justify-content:center!important;
  gap:9px!important;
  padding:0 9px!important;
  box-sizing:border-box!important;
  /* Restore source contents at the END of closing, not in a big rectangle. */
  transition:opacity .10s linear .21s!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer.gb25-expanded .gb25-account-mini {
  opacity:0!important;
  transition-delay:0s!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-mini .avatar,
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-dots {
  width:42px!important;height:42px!important;
  flex:0 0 42px!important;
  border-radius:50%!important;
  box-sizing:border-box!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-dots svg {
  width:21px!important;height:21px!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-content {
  transition:opacity .105s ease-out!important;
  transition-delay:0s!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer.gb25-expanded .gb25-account-content {
  transition-delay:.13s!important;
}
@media(prefers-reduced-motion:reduce){
 html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-mini,
 html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-content,
 html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-sheet {transition:none!important;}
}


/* GB VIP Android Build 27 — consistent capsule surfaces and light real-layout
   photo morph. Account behaviour is frozen at the approved Build 26. */
html.gb-web-v11 .topbar .brandbtn {
  height:58px!important;
  min-width:0!important;
  width:112px!important;
  max-width:112px!important;
  padding:0 13px!important;
  border-radius:29px!important;
  background:linear-gradient(145deg,rgba(58,72,108,.96),rgba(31,43,71,.96) 54%,rgba(24,33,56,.97))!important;
  border:1px solid rgba(215,228,255,.40)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.19),0 10px 28px rgba(2,6,21,.28)!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  transform:none!important;
  transition:none!important;
}
/* Keep the GB mark static: it is the logo, NOT an interactive morph target. */
html.gb-web-v11 .topbar .brandbtn .brandmark{transform:none!important;transition:none!important;}
html.gb-web-v11 .mobile-nav,
html.gb-web-v11.gb-mobile-device .mobile-nav,
html.gb-web-v11.mobile-touch .mobile-nav {
  border-radius:29px!important;
  border:1px solid rgba(215,228,255,.40)!important;
  background:linear-gradient(145deg,rgba(58,72,108,.91),rgba(31,43,71,.92) 54%,rgba(24,33,56,.94))!important;
  box-shadow:inset 0 1px rgba(255,255,255,.19),0 10px 28px rgba(2,6,21,.28)!important;
  -webkit-backdrop-filter:blur(12px) saturate(125%)!important;
  backdrop-filter:blur(12px) saturate(125%)!important;
}
html.gb-web-v11 .mobile-nav .gb-liquid-indicator {
  border-radius:25px!important;
  background:linear-gradient(145deg,rgba(119,137,180,.48),rgba(70,91,148,.40) 65%,rgba(47,65,109,.42))!important;
  border-color:rgba(215,228,255,.43)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.20),0 6px 16px rgba(2,6,21,.24)!important;
}


/* GB VIP Android Build 29 — scroll performance refinement, APK assets only.
   Preserve the approved glass gradients, capsule geometry and motion curves.
   Avoid live backdrop sampling over rapidly scrolling gallery bitmaps. */
html.gb-web-v11 .mobile-nav,
html.gb-web-v11.gb-mobile-device .mobile-nav,
html.gb-web-v11.mobile-touch .mobile-nav {
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  /* Glass appearance retained through its existing layered gradient and border. */
}
/* Selection overlays and rounded photo shells no longer demand an offscreen
   backdrop texture from the GPU while the list moves beneath them. */
html.gb-web-v11 .shot-card .card-switch,
html.gb-web-v11 .focus-vip-card .card-switch,
html.gb-web-v11 .select-trigger {
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
/* Many photos entered with simultaneous rise animations, and sticky :hover
   transform layers are expensive on touch browsers during fast scrolling. */
@media (hover:none), (pointer:coarse) {
  html.gb-web-v11 .shot-card {animation:none!important;}
  html.gb-web-v11 .shot-card:hover .shot-shell,
  html.gb-web-v11 .shot-open:hover img {transform:none!important;}
  html.gb-web-v11 .shot-open img {transition:none!important;}
  html.gb-web-v11 .shot-card .shot-shell {transition:border-color .18s ease!important;}
}
/* Gradient-only edge shading remains; don't rasterize a blurred region over
   the whole viewport as the underlying photos scroll. */
html.gb-web-v11 body::before,
html.gb-web-v11 body::after {
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  filter:none!important;
}
/* Modal images use their already-decoded original; do not add a second
   appearance animation on top of the reversible photo morph. */
html.gb-web-v11 .modal-layer.gb22-modal .vip-preview-photo img,
html.gb-web-v11 .modal-layer.gb22-modal .photo-dialog-image img {
  filter:none!important;
  transition:none!important;
}

/* Touch feedback: keep the tiny scale effect, but never animate brightness
   of an entire photograph: that would repaint a large textured layer. */
html.gb-web-v11 .shot-card.gb-native-pressed .shot-shell {
  filter:none!important;
  transition:transform .12s ease-out!important;
}
html.gb-web-v11 .shot-card.gb-native-released .shot-shell {
  filter:none!important;
  transition:transform .26s cubic-bezier(.14,.85,.22,1)!important;
}


/* GB VIP Android Build 30 — frame budget, APK-only.
   Preserve shapes/colors/data; stop sampling dozens of moving image pixels
   behind glass and stop repainting a rounded clip on every photo morph. */
html.gb-web-v11 .topbar .account,
html.gb-web-v11 .topbar .brandbtn,
html.gb-web-v11 .modal-layer .photo-dialog-close,
html.gb-web-v11 .modal-layer .vip-preview-close {
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
}
/* These panels already have opaque-tinted glass gradients; removing blur
   affects no positioning or touch targets. */
html.gb-web-v11 .modal-layer.gb22-modal .sheet {
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
 border-radius:26px!important;
 contain:layout paint;
 backface-visibility:hidden;
 box-shadow:inset 0 1px rgba(255,255,255,.16),0 12px 26px rgba(2,5,18,.26)!important;
}
html.gb-web-v11 .modal-layer.gb22-modal .vip-preview-photo,
html.gb-web-v11 .modal-layer.gb22-modal .photo-dialog-image,
html.gb-web-v11 .modal-layer.gb22-modal .vip-preview-photo img,
html.gb-web-v11 .modal-layer.gb22-modal .photo-dialog-image img {
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
 filter:none!important;
}
/* Account's well-liked capsule still expands from the SAME place and size.
   No large backdrop sampling while this small sheet changes geometry. */
html.gb-web-v11 .modal-layer.gb25-account-layer .gb25-account-sheet {
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
 contain:layout paint;
 transition-duration:.265s!important;
 box-shadow:inset 0 1px rgba(255,255,255,.18),0 10px 24px rgba(2,6,21,.24)!important;
}
html.gb-web-v11 .modal-layer.gb25-account-layer .modal-backdrop {
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
}
/* Route updates should not transform/rasterize an entire gallery of portraits. */
@keyframes gb30QuietPageIn {
 from {opacity:.91}
 to {opacity:1}
}
html.gb-web-v11 .site-main > .page.gb18-page-arriving {
 animation:gb30QuietPageIn .15s ease-out both!important;
}
/* Other dialogs do not need a second transform animation on a large sheet. */
@keyframes gb30QuietDialogIn {
 from {opacity:.88}
 to {opacity:1}
}
html.gb-web-v11 .modal-layer:not(.gb22-modal):not(.gb25-account-layer) .sheet {
 animation:gb30QuietDialogIn .17s ease-out both!important;
}
/* Keep photo gestures tactile without promoting and repainting the full card. */
@media (hover:none), (pointer:coarse) {
 html.gb-web-v11 .shot-card.gb-native-pressed .shot-shell,
 html.gb-web-v11 .shot-card.gb-native-released .shot-shell {
  transform:none!important;filter:none!important;
  transition:none!important;
 }
}
@media(prefers-reduced-motion:reduce) {
 html.gb-web-v11 .site-main > .page.gb18-page-arriving,
 html.gb-web-v11 .modal-layer:not(.gb22-modal):not(.gb25-account-layer) .sheet {
  animation:none!important;
 }
}


/* GB VIP Android BUILD 31 | Separated Islands + Gallery photo fit
   APP-ONLY. Do not copy to Cloudflare. Auth/database untouched. */
html.gb-web-v11 .mobile-nav,
html.gb-web-v11.gb-mobile-device .mobile-nav,
html.gb-web-v11.mobile-touch .mobile-nav {
 box-sizing:border-box!important;
 width:min(328px,calc(100vw - var(--gb-os-left) - var(--gb-os-right) - 38px))!important;
 max-width:328px!important;
 left:50%!important;
 right:auto!important;
 display:grid!important;
 grid-template-columns:repeat(2,minmax(0,1fr))!important;
 gap:38px!important;
 padding:0!important;
 border:0!important;
 border-radius:0!important;
 background:none!important;
 background-image:none!important;
 box-shadow:none!important;
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
 transform:translate3d(-50%,0,0)!important;
 overflow:visible!important;
 isolation:isolate!important;
}
html.gb-web-v11 .mobile-nav::before {content:none!important;display:none!important;}
html.gb-web-v11 .mobile-nav > button,
html.gb-web-v11.gb-mobile-device .mobile-nav > button,
html.gb-web-v11.mobile-touch .mobile-nav > button {
 position:relative!important;
 box-sizing:border-box!important;
 z-index:2!important;
 min-width:0!important;
 min-height:64px!important;
 height:64px!important;
 padding:8px 4px!important;
 border-radius:27px!important;
 border:1px solid rgba(215,228,255,.38)!important;
 background:linear-gradient(151deg,rgba(63,77,116,.64),rgba(29,42,73,.87) 52%,rgba(23,32,57,.90))!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 7px 22px rgba(0,5,21,.28)!important;
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
 color:rgba(213,222,247,.77)!important;
 overflow:hidden!important;
 transition:color .24s ease!important;
}
html.gb-web-v11 .mobile-nav > button.active {color:#f2f5ff!important;}
html.gb-web-v11 .mobile-nav > button > svg,
html.gb-web-v11 .mobile-nav > button > small {position:relative!important;z-index:2!important;pointer-events:none;}
html.gb-web-v11 .mobile-nav > button > small {font-size:11.5px!important;line-height:1.12!important;}
html.gb-web-v11 .mobile-nav .gb-liquid-indicator {
 z-index:3!important;
 top:0!important;bottom:0!important;
 border-radius:27px!important;
 border:1px solid rgba(221,235,255,.51)!important;
 background:linear-gradient(141deg,rgba(166,187,243,.25),rgba(114,141,218,.25) 55%,rgba(93,111,174,.20))!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.32),inset 0 -1px rgba(210,222,255,.11),0 7px 17px rgba(43,67,143,.17)!important;
 pointer-events:none!important;
 transition:none!important;
 will-change:transform;
}
@keyframes gb31PageFromRight {
 from {opacity:.90;transform:translate3d(22px,0,0)}
 to {opacity:1;transform:translate3d(0,0,0)}
}
@keyframes gb31PageFromLeft {
 from {opacity:.90;transform:translate3d(-22px,0,0)}
 to {opacity:1;transform:translate3d(0,0,0)}
}
html.gb-web-v11 .site-main > .page.gb31-from-right {animation:gb31PageFromRight .235s cubic-bezier(.2,.8,.2,1) both!important;}
html.gb-web-v11 .site-main > .page.gb31-from-left {animation:gb31PageFromLeft .235s cubic-bezier(.2,.8,.2,1) both!important;}
/* Gallery lightbox: tighter frame, photograph-driven geometry, no black void. */
@media (max-width:650px) {
 html.gb-web-v11 .modal-layer .sheet.photo-sheet,
 html.gb-web-v11 .modal-layer.gb22-modal .sheet.photo-sheet {
   box-sizing:border-box!important;
   width:min(100%,var(--gb31-photo-width,360px))!important;
   max-width:min(94vw,var(--gb31-photo-width,360px))!important;
   padding:6px!important;
   border-radius:26px!important;
   overflow:hidden!important;
   margin:auto!important;
 }
 html.gb-web-v11 .modal-layer .photo-dialog {
  display:flex!important;
  flex-direction:column!important;
  max-height:calc(100dvh - var(--gb-os-top) - var(--gb-os-bottom) - 18px)!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  gap:0!important;
 }
 html.gb-web-v11 .modal-layer .photo-dialog-image {
  flex:0 0 auto!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:var(--gb31-photo-ratio, .8)!important;
  border-radius:21px!important;
  overflow:hidden!important;
  background:#0d1221!important;
 }
 html.gb-web-v11 .modal-layer .photo-dialog-image img,
 html.gb-web-v11 .modal-layer.gb22-modal .photo-dialog-image img {
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  border-radius:inherit!important;
 }
 html.gb-web-v11 .modal-layer .photo-dialog-side {
  padding:8px 8px 10px!important;
  gap:5px!important;
 }
 html.gb-web-v11 .modal-layer .photo-dialog-header {
  margin:0!important;
  padding:3px 4px 5px!important;
  min-height:20px!important;
  border-bottom:1px solid rgba(206,221,255,.13)!important;
 }
 html.gb-web-v11 .modal-layer .photo-dialog-side h2 {
  margin:3px 4px 5px!important;
  font-size:14px!important;
  line-height:1.2!important;
 }
 html.gb-web-v11 .modal-layer .photo-dialog-actions {
  gap:6px!important;
  padding:4px 2px 0!important;
  margin:0!important;
 }
 html.gb-web-v11 .modal-layer .photo-dialog-actions .btn {
  border-radius:16px!important;
  min-height:42px!important;
  padding:8px 10px!important;
  font-size:12px!important;
  line-height:1.15!important;
 }
 html.gb-web-v11 .modal-layer .photo-dialog-close {
  top:10px!important;right:10px!important;
  width:40px!important;height:40px!important;
  border-radius:19px!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
 }
}
@media (prefers-reduced-motion:reduce){
 html.gb-web-v11 .site-main > .page.gb31-from-right,
 html.gb-web-v11 .site-main > .page.gb31-from-left{animation:none!important;}
 html.gb-web-v11 .mobile-nav .gb-liquid-indicator{transition:none!important;will-change:auto!important;}
}

/* GB VIP Android Build 32 — circle-bridge glass + lightweight archive viewer. */
html.gb-web-v11 .mobile-nav .gb-liquid-indicator {
  /* A full pill is a true round bead under non-uniform compositor scale. */
  border-radius:999px!important;
  transform-origin:center center!important;
  backface-visibility:hidden;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 5px 14px rgba(57,77,153,.20)!important;
}
html.gb-web-v11 .modal-layer.gb32-archive-modal .sheet.photo-sheet {
  transform-origin:center center!important;
  animation:none!important;
  transition:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  backface-visibility:hidden;
  /* No expensive blur or continuously changing clip during transition. */
}
html.gb-web-v11 .modal-layer.gb32-archive-modal .photo-dialog-image img,
html.gb-web-v11 .modal-layer.gb32-archive-modal .photo-dialog-actions {
  animation:none!important;
  transition:none!important;
}
@media (prefers-reduced-motion:reduce) {
 html.gb-web-v11 .modal-layer.gb32-archive-modal .sheet.photo-sheet {transform:none!important;opacity:1!important;will-change:auto!important;}
}


/* Build 33 · Gallery image continuity, APK only.
   One 290 ms compositor-travel texture. The sheet is already final-sized.
   NO animated width/height/top/left, backdrop sampling, or text scaling. */
html.gb-web-v11 .modal-layer.gb34-photo-modal {
  animation:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
html.gb-web-v11 .modal-layer.gb34-photo-modal .modal-backdrop {
  animation:none!important;
  transition:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
html.gb-web-v11 .modal-layer.gb34-photo-modal .sheet.photo-sheet {
  animation:none!important;
  transition:none!important;
  transform:none;
  opacity:1;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  backface-visibility:hidden;
}
html.gb-web-v11 .modal-layer.gb34-photo-modal .photo-dialog-image,
html.gb-web-v11 .modal-layer.gb34-photo-modal .photo-dialog-image img {
  animation:none!important;
  transition:none!important;
  filter:none!important;
}
html.gb-web-v11 .modal-layer.gb34-photo-modal .gb33-photo-flight {
  position:fixed!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  z-index:45!important;
  pointer-events:none!important;
  border-radius:21px!important;
  overflow:hidden!important;
  background:#0d1221!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  transform-origin:top left!important;
  backface-visibility:hidden;
}
html.gb-web-v11 .modal-layer.gb34-photo-modal .gb33-flight-image {
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  opacity:1!important;
  transform:none!important;
  filter:none!important;
  object-fit:contain!important;
  pointer-events:none!important;
}
@media(prefers-reduced-motion:reduce){
 html.gb-web-v11 .modal-layer.gb34-photo-modal .gb33-photo-flight{display:none!important;}
}

/* BUILD 34 · APK-only motion continuity, never distort a guest's face.
   Focus and Collection share the same light composited photo-flight.
   Keep text/buttons at native size; do not animate large image filters. */
html.gb-web-v11 .modal-layer.gb34-focus-modal,
html.gb-web-v11 .modal-layer.gb34-focus-modal .sheet.vip-preview-sheet,
html.gb-web-v11 .modal-layer.gb34-focus-modal .vip-preview-photo,
html.gb-web-v11 .modal-layer.gb34-focus-modal .vip-preview-photo img {
  animation:none!important;
  transition:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  filter:none!important;
}
html.gb-web-v11 .modal-layer.gb34-focus-modal .sheet.vip-preview-sheet {
  transform:none;
  opacity:1;
  overflow:hidden!important;
}
html.gb-web-v11 .modal-layer.gb34-focus-modal .vip-preview-photo img {
  object-fit:contain!important;
  object-position:center!important;
  opacity:1!important;
  transform:none!important;
}
html.gb-web-v11 .modal-layer.gb34-photo-modal .gb33-photo-flight,
html.gb-web-v11 .modal-layer.gb34-photo-modal .gb33-flight-image {
  animation:none!important;
  transition:none!important;
  filter:none!important;
}
/* During a transition, the flight image maintains its native aspect ratio.
   The compositor receives a UNIFORM scale, never scale(x,y). */
html.gb-web-v11 .modal-layer.gb34-photo-modal .gb33-flight-image {
  object-fit:contain!important;
}


/* Build 35 — Collection thumbnails switch to square geometry.
   The opened Collection viewer is already close to square, so the old
   portrait tiles caused a heavy closing rescale. Keep the archive cards
   square in the grid so the shared-element motion feels native. */
html.gb-web-v11 .archive-page .photos-grid {
  align-items:start!important;
  gap:12px 10px!important;
}
html.gb-web-v11 .archive-page .shot-card {
  min-width:0!important;
}
html.gb-web-v11 .archive-page .shot-shell,
html.gb-web-v11 .archive-page .shot-card:hover .shot-shell {
  border-radius:25px!important;
}
html.gb-web-v11 .archive-page .shot-open {
  aspect-ratio:1 / 1!important;
  border-radius:20px!important;
  overflow:hidden!important;
  background:#11192a!important;
}
html.gb-web-v11 .archive-page .shot-open img {
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:50% 26%!important;
  transform:none!important;
}
html.gb-web-v11 .archive-page .shot-card .card-switch,
html.gb-web-v11 .archive-page .shot-card .select-mark {
  top:10px!important;
  right:10px!important;
}
@media(max-width:360px){
  html.gb-web-v11 .archive-page .photos-grid {gap:10px 8px!important;}
  html.gb-web-v11 .archive-page .shot-shell,
  html.gb-web-v11 .archive-page .shot-card:hover .shot-shell {border-radius:23px!important;}
  html.gb-web-v11 .archive-page .shot-open {border-radius:18px!important;}
}


/* GB VIP Android Build 36: ONE aligned capsule, two stable glass beds.
   Only bottom navigation; no photo/card/account changes. */
html.gb-web-v11 .mobile-nav,
html.gb-web-v11.gb-mobile-device .mobile-nav,
html.gb-web-v11.mobile-touch .mobile-nav {
 position:fixed!important;
 isolation:isolate!important;
 height:64px!important;
 min-height:64px!important;
 padding:0!important;
 gap:38px!important;
 box-sizing:border-box!important;
 overflow:visible!important;
 border:0!important;
 border-radius:0!important;
 background:transparent!important;
 background-image:none!important;
 box-shadow:none!important;
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
}
html.gb-web-v11 .mobile-nav::before,
html.gb-web-v11 .mobile-nav::after {content:none!important;display:none!important;}
html.gb-web-v11 .mobile-nav > .gb-nav-bed {
 display:block!important;
 box-sizing:border-box!important;
 pointer-events:none!important;
 position:absolute!important;
 top:0!important;
 height:64px!important;
 width:calc((100% - 38px)/2)!important;
 border:1px solid rgba(215,228,255,.40)!important;
 border-radius:27px!important;
 background:linear-gradient(151deg,rgba(63,77,116,.64),rgba(29,42,73,.87) 52%,rgba(23,32,57,.90))!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 7px 22px rgba(0,5,21,.28)!important;
 z-index:0!important;
}
html.gb-web-v11 .mobile-nav > .gb-nav-bed-left {left:0!important;}
html.gb-web-v11 .mobile-nav > .gb-nav-bed-right {right:0!important;}
html.gb-web-v11 .mobile-nav > .gb-liquid-indicator {
 box-sizing:border-box!important;
 display:block!important;
 position:absolute!important;
 left:0!important;top:0!important;bottom:auto!important;
 height:64px!important;
 z-index:1!important;
 border:1px solid rgba(235,243,255,.60)!important;
 border-radius:27px!important;
 background:linear-gradient(149deg,rgba(188,209,255,.42),rgba(124,155,229,.30) 55%,rgba(104,125,202,.22))!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.36),inset 0 -1px rgba(214,228,255,.16),0 6px 18px rgba(40,58,130,.28)!important;
 transform-origin:center center!important;
 will-change:transform!important;
 pointer-events:none!important;
 -webkit-backdrop-filter:none!important;
 backdrop-filter:none!important;
}
html.gb-web-v11 .mobile-nav > button,
html.gb-web-v11.gb-mobile-device .mobile-nav > button,
html.gb-web-v11.mobile-touch .mobile-nav > button {
 position:relative!important;
 z-index:2!important;
 box-sizing:border-box!important;
 height:64px!important;min-height:64px!important;
 margin:0!important;
 border:1px solid transparent!important;
 border-radius:27px!important;
 background:transparent!important;background-image:none!important;
 box-shadow:none!important;
 -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
 transform:none!important;
 transition:color .2s ease!important;
}
html.gb-web-v11 .mobile-nav > button > svg,
html.gb-web-v11 .mobile-nav > button > small {
 z-index:1!important;
 position:relative!important;
 filter:none!important;
}
@media(prefers-reduced-motion:reduce) {
 html.gb-web-v11 .mobile-nav > .gb-liquid-indicator {will-change:auto!important;}
}


/* GB VIP APK Build 37: restore the compact circular bridge without flicker.
   Two subtle static islands, ONE moving selection. Never blur during motion. */
html.gb-web-v11 .mobile-nav > .gb-nav-bed {
  border-radius:32px!important;
  border-color:rgba(207,221,252,.25)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 5px 14px rgba(0,5,21,.18)!important;
}
html.gb-web-v11 .mobile-nav > .gb-liquid-indicator {
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
  outline:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  transform-origin:center center!important;
  z-index:1!important;
}
html.gb-web-v11 .mobile-nav > .gb-liquid-indicator > .gb-liquid-core {
  display:block!important;
  position:absolute!important;
  inset:0!important;
  box-sizing:border-box!important;
  background:linear-gradient(149deg,rgba(188,209,255,.42),rgba(124,155,229,.30) 55%,rgba(104,125,202,.22))!important;
  border:1px solid rgba(235,243,255,.57)!important;
  border-radius:50%!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.34),0 5px 14px rgba(40,58,130,.23)!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  transform-origin:center center!important;
  pointer-events:none!important;
  will-change:transform;
  contain:paint;
}
html.gb-web-v11 .mobile-nav > button,
html.gb-web-v11.gb-mobile-device .mobile-nav > button,
html.gb-web-v11.mobile-touch .mobile-nav > button {
  border-radius:32px!important;
  overflow:visible!important;
}
@media (prefers-reduced-motion:reduce){
  html.gb-web-v11 .mobile-nav > .gb-liquid-indicator > .gb-liquid-core{will-change:auto!important;}
}


/* GB VIP Build 38 — single true-shape liquid bubble.
   New class deliberately bypasses five generations of .gb-liquid-indicator
   overrides; never scale a stroked rectangular surface into an oval. */
html.gb-web-v11 .mobile-nav > .gb38-ink {
  position:absolute;
  display:block;
  box-sizing:border-box;
  z-index:1;
  pointer-events:none;
  left:0;top:0;
  height:64px;
  width:100px;
  border-radius:32px;
  border:1px solid rgba(226,236,255,.66);
  background:linear-gradient(152deg,rgba(188,205,251,.38),rgba(120,149,224,.31) 52%,rgba(97,119,195,.24));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 5px 13px rgba(32,51,111,.17);
  transform:none;
  transition:none;
  animation:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  contain:layout paint style;
}
/* Islands are a fixed matte glass base. The only highlighted outline is ink.
   No duplicate active background or borders from the older navigation. */
html.gb-web-v11 .mobile-nav > .gb-nav-bed {
  border-radius:32px!important;
  border-color:rgba(211,224,255,.24)!important;
  background:linear-gradient(151deg,rgba(63,77,116,.59),rgba(29,42,73,.80) 52%,rgba(23,32,57,.85))!important;
}
html.gb-web-v11 .mobile-nav > button,
html.gb-web-v11.gb-mobile-device .mobile-nav > button,
html.gb-web-v11.mobile-touch .mobile-nav > button {
  z-index:2!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  transform:none!important;
  overflow:visible!important;
}
@media(prefers-reduced-motion:reduce){
 html.gb-web-v11 .mobile-nav > .gb38-ink{transition:none;animation:none;}
}

/* Final browser-port overrides, after all APK rules. */
html.gb-web-v11{--gb-os-top:env(safe-area-inset-top,0px);--gb-os-bottom:env(safe-area-inset-bottom,0px);--gb-os-left:env(safe-area-inset-left,0px);--gb-os-right:env(safe-area-inset-right,0px)}
html.gb-web-v11 .gb-cloud-note{font-size:12px;color:#e6d39a;line-height:1.6;margin:8px 0 18px;padding:10px 14px;border:1px solid rgba(230,211,154,.23);border-radius:14px;background:rgba(36,39,58,.5)}
html.gb-web-v11 .focus-vip-card .focus-vip-identity-name{overflow-wrap:anywhere}
html.gb-web-v11 .vip-work-card strong{overflow-wrap:anywhere}
html.gb-web-v11 .upload-trigger{color:#162046!important;}
/* Keep browser desktop width honest; a phone in landscape uses the real viewport. */
@media(min-width:851px){
 html.gb-web-v11 .topbar{position:fixed!important;left:24px!important;right:24px!important;margin:0!important;top:12px!important;z-index:100!important;pointer-events:auto!important;}
 html.gb-web-v11 .toprow{margin:0!important;max-width:1320px;min-height:72px!important;padding:10px 20px!important;}
 html.gb-web-v11 .site-main{padding-top:94px!important;max-width:1460px;margin:0 auto;}
 html.gb-web-v11 .page{padding:28px 36px 110px!important;}
 html.gb-web-v11 .mobile-nav,html.gb-web-v11.gb-mobile-device .mobile-nav,html.gb-web-v11.mobile-touch .mobile-nav{display:none!important;}
 html.gb-web-v11 .section-head{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:20px!important;}
 html.gb-web-v11 .section-actions,html.gb-web-v11 .section-actions .btn{width:auto!important;align-self:center!important;}
 html.gb-web-v11 .section-actions .btn{min-width:200px;}
 html.gb-web-v11 .toprow .tabs{display:flex!important;}
 html.gb-web-v11 .focus-page .photos-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))!important;gap:22px!important;}
 html.gb-web-v11 .archive-page .photos-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))!important;gap:20px!important;}
 html.gb-web-v11 .modal-layer{padding:22px!important;}
 html.gb-web-v11 .sheet{max-height:min(90dvh,860px)!important;}
 html.gb-web-v11 .focus-page .vip-unified-metric strong{font-size:clamp(12px,1.15vw,16px)!important;}
}
@media(max-width:850px){
 html.gb-web-v11 .site-main{padding-top:calc(var(--gb-os-top) + 72px)!important;}
 html.gb-web-v11 .topbar{top:calc(var(--gb-os-top) + 7px)!important;margin:calc(var(--gb-os-top) + 7px) 13px 0!important;}
 html.gb-web-v11 .mobile-nav{bottom:calc(var(--gb-os-bottom) + 7px)!important;inset-block-end:calc(var(--gb-os-bottom) + 7px)!important;}
 html.gb-web-v11 .page{padding-bottom:calc(var(--gb-os-bottom) + 125px)!important;}
 html.gb-web-v11 #toast{bottom:calc(var(--gb-os-bottom) + 85px)!important;}
}

/* GB VIP: save action becomes visible for edits INCLUDING cleared fields. */
.vip-edit-form button[type="submit"]:disabled{opacity:.42;filter:saturate(.45);cursor:default;}
.vip-edit-form.gb-vip-form-dirty button[type="submit"].gb-vip-save-active{opacity:1!important;filter:none!important;background:linear-gradient(135deg,#f8e0ad,#cda15b)!important;color:#231a11!important;box-shadow:0 5px 24px rgba(221,180,108,.32)!important;}
