/* BUGGY Passport v236 BASE canonical adaptive Rip callout presentation. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder){
  --v234-rip-paper:#F1F0EB;
  --v234-rip-ink:#041E42;
  --v234-rip-line:#2A2F2D;
  --v234-rip-shadow:0 10px 24px rgba(4,30,66,.12);
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host{
  --v234-callout-width:286px;
  --v234-callout-height:154px;
  box-sizing:border-box!important;
  width:min(var(--v234-callout-width),calc(100vw - 28px))!important;
  min-width:0!important;
  height:var(--v234-callout-height)!important;
  min-height:var(--v234-callout-height)!important;
  max-height:none!important;
  padding:0!important;
  overflow:visible!important;
  overflow-clip-margin:unset!important;
  contain:none!important;
  isolation:isolate!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
  box-shadow:none!important;
  filter:drop-shadow(0 10px 14px rgba(4,30,66,.12))!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
  color:var(--v234-rip-ink)!important;
  text-align:center!important;
}

/* Candidate 3 stacking boundary. Setup forms/cards are later DOM siblings and
   may create their own animation/transform layers. Elevating the complete Rip
   presenter keeps every page surface behind the callout while retaining the
   approved internal order: callout z1, Rip z2, live text/actions inside the
   callout, and the existing fixed MOVE RIP / ASK RIP controls above both. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-scene,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passport #passportRipGuide,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #trainingPage #trainingRipGuide,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay{
  z-index:400!important;
  isolation:isolate!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host[data-v234-size="compact"]{--v234-callout-width:238px;--v234-callout-height:122px;}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host[data-v234-size="standard"]{--v234-callout-width:286px;--v234-callout-height:154px;}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host[data-v234-size="wide"]{--v234-callout-width:342px;--v234-callout-height:158px;}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host[data-v234-size="tall"]{--v234-callout-width:264px;--v234-callout-height:214px;}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-art{
  position:absolute!important;
  z-index:0!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  display:block!important;
  overflow:visible!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
  pointer-events:none!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-shape{
  fill:#F1F0EB!important;
  fill-opacity:1!important;
  opacity:1!important;
  stroke:var(--v234-rip-line)!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  vector-effect:non-scaling-stroke!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host > .rip-callout-copy{
  --v234-live-font-size:23px;
  position:absolute!important;
  z-index:2!important;
  inset:15px 22px 18px!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:4px 6px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  hyphens:auto!important;
  white-space:normal!important;
  text-wrap:pretty!important;
  box-sizing:border-box!important;
  color:var(--v234-rip-ink)!important;
  font-family:"Permanent Marker","Comic Sans MS",cursive!important;
  font-size:var(--v234-live-font-size)!important;
  font-weight:400!important;
  font-style:normal!important;
  line-height:1.12!important;
  letter-spacing:0!important;
  text-align:center!important;
  text-transform:uppercase!important;
  pointer-events:none!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host[data-v234-typography="short"] > .rip-callout-copy{--v234-live-font-size:30px;}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host[data-v234-typography="normal"] > .rip-callout-copy{--v234-live-font-size:25px;}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host[data-v234-typography="explain"] > .rip-callout-copy{--v234-live-font-size:21px;}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy{bottom:47px!important;}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-actions{
  position:absolute!important;
  z-index:4!important;
  left:18px!important;
  right:18px!important;
  bottom:12px!important;
  min-height:30px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  pointer-events:auto!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-actions[hidden]{display:none!important;}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-action{
  width:auto!important;
  min-width:68px!important;
  min-height:30px!important;
  margin:0!important;
  padding:5px 12px!important;
  border:1.8px solid var(--v234-rip-line)!important;
  border-radius:999px!important;
  background:#FEBD3B!important;
  color:#041E42!important;
  box-shadow:none!important;
  font:400 14px/1 "Permanent Marker","Comic Sans MS",cursive!important;
  text-transform:uppercase!important;
  cursor:pointer!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-action.secondary{background:var(--v234-rip-paper)!important;}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-action:focus-visible{outline:3px solid #D6173F!important;outline-offset:2px!important;}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-progress{
  position:absolute!important;
  z-index:4!important;
  left:50%!important;
  bottom:5px!important;
  transform:translateX(-50%)!important;
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  pointer-events:none!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-progress[hidden]{display:none!important;}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-progress-dot{width:6px!important;height:6px!important;border-radius:50%!important;background:#CBD1D4!important;}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-progress-dot.active{width:17px!important;border-radius:999px!important;background:#FEBD3B!important;}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host.v234-rip-has-actions > .v234-rip-progress{bottom:48px!important;}

/* Explicit surface adapters win over every historical sprite/triangle rule. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home #ripHomeSpeech.v234-rip-callout-host,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene #activationRipSpeech.v234-rip-callout-host,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene #setupRipSpeech.v234-rip-callout-host,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene #loginRipSpeech.v234-rip-callout-host,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour #passportIntroSpeech.v234-rip-callout-host,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passport #passportRipGuide #passportRipSpeech.v234-rip-callout-host,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #trainingPage #trainingRipGuide #trainingRipSpeech.v234-rip-callout-host,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay #v191RipInstructionCopy.v234-rip-callout-host{
  width:min(var(--v234-callout-width),calc(100vw - 28px))!important;
  height:var(--v234-callout-height)!important;
  min-height:var(--v234-callout-height)!important;
  max-height:none!important;
  overflow:visible!important;
  contain:none!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
  box-shadow:none!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home #ripHomeSpeech.v234-rip-callout-host > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene #activationRipSpeech.v234-rip-callout-host > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene #setupRipSpeech.v234-rip-callout-host > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene #loginRipSpeech.v234-rip-callout-host > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour #passportIntroSpeech.v234-rip-callout-host > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passport #passportRipGuide #passportRipSpeech.v234-rip-callout-host > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #trainingPage #trainingRipGuide #trainingRipSpeech.v234-rip-callout-host > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay #v191RipInstructionCopy.v234-rip-callout-host > .rip-callout-copy{
  position:absolute!important;
  z-index:2!important;
  inset:15px 22px 18px!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:4px 6px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  font-family:"Permanent Marker","Comic Sans MS",cursive!important;
  font-size:var(--v234-live-font-size)!important;
  font-weight:400!important;
  line-height:1.12!important;
  text-align:center!important;
  text-transform:uppercase!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home #ripHomeSpeech.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipSpeech.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipSpeech.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipSpeech.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroSpeech.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportRipSpeech.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #trainingRipSpeech.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionCopy.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy{
  bottom:47px!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home #ripHomeSpeech.v234-rip-callout-host::before,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home #ripHomeSpeech.v234-rip-callout-host::after,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene #activationRipSpeech.v234-rip-callout-host::before,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene #activationRipSpeech.v234-rip-callout-host::after,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene #setupRipSpeech.v234-rip-callout-host::before,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene #setupRipSpeech.v234-rip-callout-host::after,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene #loginRipSpeech.v234-rip-callout-host::before,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene #loginRipSpeech.v234-rip-callout-host::after,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroSpeech.v234-rip-callout-host::before,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroSpeech.v234-rip-callout-host::after,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportRipSpeech.v234-rip-callout-host::before,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportRipSpeech.v234-rip-callout-host::after,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #trainingRipSpeech.v234-rip-callout-host::before,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #trainingRipSpeech.v234-rip-callout-host::after,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionCopy.v234-rip-callout-host::before,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionCopy.v234-rip-callout-host::after{
  content:none!important;
  display:none!important;
}

/* RC19 normal-flow placement is retained; only bubble presentation changes. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene #activationRipSpeech.v234-rip-callout-host,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene #setupRipSpeech.v234-rip-callout-host,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene #loginRipSpeech.v234-rip-callout-host{
  left:6px!important;
  right:auto!important;
  top:0!important;
  bottom:auto!important;
  width:min(var(--v234-callout-width),calc(100% - 112px))!important;
  max-width:none!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passport #passportRipGuide #passportRipSpeech.v234-rip-callout-host{
  left:6px!important;
  right:auto!important;
  top:4px!important;
  bottom:auto!important;
  width:min(var(--v234-callout-width),74vw)!important;
  max-width:none!important;
  pointer-events:auto!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #trainingPage #trainingRipGuide #trainingRipSpeech.v234-rip-callout-host{
  width:min(var(--v234-callout-width),calc(100vw - 118px))!important;
  pointer-events:auto!important;
}

/* Status keeps existing truth/actions outside the bubble; v234 owns paging UI. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay #v191RipInstructionCopy.v234-rip-callout-host{
  position:absolute!important;
  left:2px!important;
  right:auto!important;
  top:10px!important;
  bottom:auto!important;
  width:min(var(--v234-callout-width),68vw)!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay .v234-rip-actions-external{
  position:static!important;
  min-height:54px!important;
  margin:4px 18px 14px!important;
  display:flex!important;
  flex-wrap:wrap!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay .v234-rip-progress-external{
  position:static!important;
  transform:none!important;
  min-height:12px!important;
  justify-content:center!important;
  margin:2px auto 4px!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-logo-frame > .v234-rip-actions,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-logo-frame > .v234-rip-progress{display:none!important;}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-logo-frame > .rip-callout-copy{
  inset:12px 18px 15px!important;
  padding:2px!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-logo-frame .rip-home-passport-frame{
  position:static!important;
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:92%!important;
  max-height:92%!important;
  margin:auto!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
}

@media(max-width:360px){
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host[data-v234-size="standard"]{--v234-callout-width:264px;--v234-callout-height:148px;}
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host[data-v234-size="wide"]{--v234-callout-width:286px;--v234-callout-height:170px;}
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host > .rip-callout-copy{inset:14px 18px 17px!important;}
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy{bottom:45px!important;}
}

@media(prefers-reduced-motion:reduce){
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host *{animation:none!important;transition:none!important;}
}


/* ==========================================================================
   BUGGY Passport v234 Candidate 4 — protected Rip lane + readable bubble
   Complete replacement cascade. The bubble and Rip are separate visual lanes;
   canonical actions live inside the bubble; legacy controls stay outside it.
   ========================================================================== */

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) :is(
  #ripHomeSpeech,
  #activationRipSpeech,
  #setupRipSpeech,
  #loginRipSpeech,
  #passportIntroSpeech,
  #passportRipSpeech,
  #trainingRipSpeech,
  #v191RipInstructionCopy
).v234-rip-callout-host{
  width:min(var(--v234-callout-width),60%)!important;
  max-width:286px!important;
  height:var(--v234-callout-height)!important;
  min-height:var(--v234-callout-height)!important;
  overflow:visible!important;
  contain:none!important;
  background:transparent!important;
  background-image:none!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  opacity:1!important;
  isolation:isolate!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) :is(
  #ripHomeSpeech,
  #activationRipSpeech,
  #setupRipSpeech,
  #loginRipSpeech,
  #passportIntroSpeech,
  #passportRipSpeech,
  #trainingRipSpeech,
  #v191RipInstructionCopy
).v234-rip-callout-host > .v234-rip-callout-art{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) :is(
  #ripHomeSpeech,
  #activationRipSpeech,
  #setupRipSpeech,
  #loginRipSpeech,
  #passportIntroSpeech,
  #passportRipSpeech,
  #trainingRipSpeech,
  #v191RipInstructionCopy
).v234-rip-callout-host > .rip-callout-copy{
  inset:14px 18px 17px!important;
  padding:3px 4px!important;
  font-size:var(--v234-live-font-size)!important;
  line-height:1.1!important;
  transform:none!important;
  overflow:hidden!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) :is(
  #ripHomeSpeech,
  #activationRipSpeech,
  #setupRipSpeech,
  #loginRipSpeech,
  #passportIntroSpeech,
  #passportRipSpeech,
  #trainingRipSpeech,
  #v191RipInstructionCopy
).v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy{
  bottom:50px!important;
}

/* Action is part of Rip's bubble, not a detached second control. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-actions{
  left:16px!important;
  right:16px!important;
  bottom:11px!important;
  min-height:32px!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-action{
  min-height:31px!important;
  padding:5px 13px!important;
  font-size:14px!important;
}

/* The Welcome stage reserves three distinct zones: page action at top-left,
   ASK RIP beneath it, and Rip + speech below/right. Nothing shares a box. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro{
  position:relative!important;
  min-height:440px!important;
  height:440px!important;
  overflow:visible!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-entry-action-integrated{
  position:absolute!important;
  left:10px!important;
  top:8px!important;
  bottom:auto!important;
  width:min(150px,42%)!important;
  z-index:8!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-entry-button{
  min-height:82px!important;
  padding:7px 14px!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-ask-rip{
  position:absolute!important;
  left:75px!important;
  top:96px!important;
  right:auto!important;
  bottom:auto!important;
  transform:translateX(-50%)!important;
  z-index:9!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home #ripHomeSpeech.v234-rip-callout-host{
  width:min(var(--v234-callout-width),57%)!important;
  max-width:286px!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-large{
  position:absolute!important;
  right:5px!important;
  left:auto!important;
  bottom:12px!important;
  width:min(190px,40%)!important;
  max-width:40%!important;
  height:auto!important;
  z-index:2!important;
}

/* Waist-up presenter art owns the right lane. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene .setup-rip,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene .setup-rip,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene .setup-rip,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-rip,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passport #passportRipGuide .passport-context-rip-image,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #trainingPage #trainingRipGuide .training-rip-image,
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay .v191-rip-instruction-rip{
  max-width:38%!important;
  height:auto!important;
  z-index:2!important;
}

/* Passport Intro is a contained composition. Its canonical CONT./GOT IT is
   inside the bubble; the old external next button is fallback-only. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .passport-intro-scene{
  position:relative!important;
  height:310px!important;
  min-height:310px!important;
  overflow:visible!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-rip{
  position:absolute!important;
  right:2px!important;
  left:auto!important;
  bottom:8px!important;
  top:auto!important;
  width:min(164px,38%)!important;
  max-width:38%!important;
  max-height:245px!important;
  object-fit:contain!important;
  object-position:right bottom!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroSpeech.v234-rip-callout-host{
  max-width:270px!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroNextButton[hidden]{display:none!important;}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .passport-intro-actions{
  grid-template-columns:1fr!important;
  max-width:170px!important;
  margin:0 auto!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .passport-intro-skip{min-height:44px!important;}

/* A renderer-detected overflow is a test failure state, not a visual mode. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host.v234-rip-copy-overflow{
  outline:none!important;
  outline-offset:0!important;
}

@media(max-width:380px){
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro{
    min-height:420px!important;
    height:420px!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-entry-action-integrated{
    left:6px!important;
    width:min(138px,43%)!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-ask-rip{
    left:69px!important;
    top:92px!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home #ripHomeSpeech.v234-rip-callout-host{
    width:min(var(--v234-callout-width),59%)!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-large{
    width:min(154px,38%)!important;
    max-width:38%!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) :is(
    #activationRipSpeech,
    #setupRipSpeech,
    #loginRipSpeech,
    #passportIntroSpeech,
    #passportRipSpeech,
    #trainingRipSpeech,
    #v191RipInstructionCopy
  ).v234-rip-callout-host{
    width:min(var(--v234-callout-width),61%)!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .passport-intro-scene{
    height:300px!important;
    min-height:300px!important;
  }
}

/* The Check-In speech surface is itself the approved input shortcut. Keep the
   host touchable even when an ancestor's historic presentation rule is inert;
   the SVG and copy remain pointer-transparent so the host receives the tap. */
html.buggy-v235-pwa-shell body :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene #activationRipSpeech.v234-rip-callout-host.v235-r27-input-shortcut{
  pointer-events:auto!important;
  cursor:text!important;
}


/* ==========================================================================\n   BUGGY Passport v234 Candidate 5 — legacy Welcome hierarchy + contained intro\n   --------------------------------------------------------------------------\n   Welcome visual order is intentionally legacy: Rip speaks FIRST, then the\n   Check-In / Activate Passport action. The canonical renderer adapts to that\n   hierarchy; it does not redesign the page around the bubble.\n   ========================================================================== */

/* WELCOME — normal-flow grid. No generic absolute presenter positioning. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(118px,38%)!important;
  grid-template-rows:auto auto auto!important;
  grid-template-areas:
    "speech rip"
    "ask rip"
    "entry entry"!important;
  column-gap:8px!important;
  row-gap:6px!important;
  align-items:start!important;
  width:100%!important;
  min-height:0!important;
  height:auto!important;
  margin:0 auto!important;
  padding:12px 8px 8px!important;
  overflow:visible!important;
  isolation:isolate!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home #ripHomeSpeech.v234-rip-callout-host{
  grid-area:speech!important;
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:start!important;
  justify-self:stretch!important;
  width:100%!important;
  max-width:250px!important;
  margin:0!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-large{
  grid-area:rip!important;
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:start!important;
  justify-self:end!important;
  width:min(164px,100%)!important;
  max-width:100%!important;
  height:auto!important;
  margin:0!important;
  transform:none!important;
  z-index:2!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-ask-rip{
  grid-area:ask!important;
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:start!important;
  justify-self:center!important;
  transform:none!important;
  margin:0!important;
  z-index:5!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-entry-action-integrated{
  grid-area:entry!important;
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  justify-self:center!important;
  width:min(170px,48vw)!important;
  max-width:170px!important;
  margin:2px 0 0!important;
  padding:0!important;
  z-index:4!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-entry-button{
  min-height:82px!important;
  padding:7px 14px!important;
}

/* PASSPORT INTRO — bubble and Rip stay entirely inside the white card. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-panel{
  overflow:auto!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-scene{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(104px,34%)!important;
  grid-template-rows:auto!important;
  align-items:end!important;
  gap:8px!important;
  width:100%!important;
  min-height:0!important;
  height:auto!important;
  margin:6px 0 8px!important;
  padding:4px 0 4px!important;
  overflow:visible!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour #passportIntroSpeech.v234-rip-callout-host{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:start!important;
  justify-self:stretch!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-rip{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:end!important;
  justify-self:end!important;
  width:100%!important;
  max-width:150px!important;
  max-height:235px!important;
  height:auto!important;
  margin:0!important;
  object-fit:contain!important;
  object-position:right bottom!important;
  transform:none!important;
  z-index:2!important;
}

/* The canonical action lives inside the bubble. The historical NEXT button is
   retained only as a source fallback and never paints beside it. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroNextButton{
  display:none!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-actions{
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-skip{
  min-height:40px!important;
  padding:8px 14px!important;
}

/* Canonical actions are always physically inside the speech host. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host > .v234-rip-actions:not(.v234-rip-actions-external){
  position:absolute!important;
  left:16px!important;
  right:16px!important;
  bottom:10px!important;
  transform:none!important;
}

/* A clipped sentence is never an accepted Candidate 5 state. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host.v234-rip-copy-overflow{
  overflow:visible!important;
}

@media(max-width:380px){
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro{
    grid-template-columns:minmax(0,1fr) minmax(108px,37%)!important;
    padding-left:6px!important;
    padding-right:6px!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-large{
    width:min(146px,100%)!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-entry-action-integrated{
    width:min(158px,50vw)!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-scene{
    grid-template-columns:minmax(0,1fr) minmax(96px,32%)!important;
    gap:6px!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-rip{
    max-width:128px!important;
    max-height:210px!important;
  }
}


/* ==========================================================================
   BUGGY Passport v234 Candidate 8 — stable, contained Rip conversations
   --------------------------------------------------------------------------
   Candidate 8 starts from the known-good Candidate 5 source. It intentionally
   does NOT use Candidate 6's mutation-observer visibility feedback loop.
   ========================================================================== */

/* CONT./GOT IT owns the lower-right shelf; speech copy reserves that shelf. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy{
  bottom:62px!important;
  padding-bottom:2px!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host > .v234-rip-actions:not(.v234-rip-actions-external){
  position:absolute!important;
  left:auto!important;
  right:14px!important;
  bottom:10px!important;
  width:max-content!important;
  min-width:0!important;
  min-height:32px!important;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  transform:none!important;
  z-index:5!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host > .v234-rip-actions:not(.v234-rip-actions-external) .v234-rip-action{
  margin:0!important;
}

/* A locked ASK RIP conversation may be changed by old controller classes, but
   CSS keeps the canonical conversation visible until CONT./GOT IT completes. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v234-rip-callout-host[data-v234-locked="true"]{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}

/* Welcome ASK RIP never changes lane, geometry, or color while active. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-ask-rip,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-ask-rip:hover,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-ask-rip:focus-visible,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-ask-rip:active,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-ask-rip.is-pressed,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-ask-rip.is-asking{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
  background:var(--sun,#FEBD3B)!important;
  color:var(--navy,#041E42)!important;
  border:1px solid rgba(4,30,66,.34)!important;
  outline:none!important;
  box-shadow:none!important;
}

/* Check-In, New Passport Setup, and Existing Login: normal-flow two-lane
   presenter. The bubble owns the left lane; Rip owns the right lane. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(108px,34%)!important;
  grid-template-rows:auto!important;
  align-items:end!important;
  column-gap:8px!important;
  width:100%!important;
  min-height:188px!important;
  height:auto!important;
  top:auto!important;
  bottom:auto!important;
  overflow:visible!important;
  isolation:isolate!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipSpeech.v234-rip-callout-host,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipSpeech.v234-rip-callout-host,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipSpeech.v234-rip-callout-host{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:start!important;
  justify-self:stretch!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene .setup-rip,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene .setup-rip,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene .setup-rip{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:end!important;
  justify-self:end!important;
  width:100%!important;
  max-width:148px!important;
  height:auto!important;
  margin:0!important;
  transform:none!important;
  object-fit:contain!important;
  object-position:right bottom!important;
  z-index:2!important;
}

/* Status pop-up: same contained two-lane presenter inside its own dialog. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay .v191-rip-instruction-scene{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(96px,31%)!important;
  grid-template-rows:auto!important;
  align-items:end!important;
  column-gap:8px!important;
  width:100%!important;
  min-height:184px!important;
  height:auto!important;
  overflow:visible!important;
  isolation:isolate!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay #v191RipInstructionCopy.v234-rip-callout-host{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:start!important;
  justify-self:stretch!important;
  width:100%!important;
  max-width:none!important;
  height:var(--v234-callout-height)!important;
  margin:0!important;
}
html.buggy-v235-pwa-shell body :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay .v191-rip-instruction-rip{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:end!important;
  justify-self:end!important;
  width:100%!important;
  max-width:126px!important;
  max-height:190px!important;
  height:auto!important;
  margin:0!important;
  transform:none!important;
  object-fit:contain!important;
  object-position:right bottom!important;
  z-index:2!important;
}

@media(max-width:380px){
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene{
    grid-template-columns:minmax(0,1fr) minmax(98px,32%)!important;
    column-gap:6px!important;
    min-height:174px!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene .setup-rip,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene .setup-rip,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene .setup-rip{
    max-width:126px!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay .v191-rip-instruction-scene{
    grid-template-columns:minmax(0,1fr) minmax(86px,29%)!important;
    column-gap:6px!important;
  }
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay .v191-rip-instruction-rip{
    max-width:108px!important;
  }
}


/* ==========================================================================
   BUGGY Passport v234 Candidate 8 — wide onboarding presenter + explicit error
   --------------------------------------------------------------------------
   Candidate 7 remains the behavioral baseline. This final cascade only
   normalizes Check-In / Setup / Login presenter geometry and Rip validation.
   It deliberately uses selector specificity above the RC19 four-ID cascade.
   ========================================================================== */

/* Check-In, New Passport, Existing Passport, and every Setup onboarding stage
   share one compact landscape composition: readable bubble left, Rip right. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(104px,30%)!important;
  grid-template-rows:auto!important;
  align-items:end!important;
  column-gap:10px!important;
  width:min(410px,100%)!important;
  max-width:410px!important;
  min-height:166px!important;
  height:auto!important;
  margin:8px auto 0!important;
  overflow:visible!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene #activationRipSpeech.v234-rip-callout-host,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene #setupRipSpeech.v234-rip-callout-host,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene #loginRipSpeech.v234-rip-callout-host{
  --v234-callout-width:286px;
  --v234-callout-height:148px;
  position:relative!important;
  grid-column:1!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:start!important;
  justify-self:stretch!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:var(--v234-callout-height)!important;
  min-height:var(--v234-callout-height)!important;
  margin:0!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene #activationRipSpeech.v234-rip-callout-host > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene #setupRipSpeech.v234-rip-callout-host > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene #loginRipSpeech.v234-rip-callout-host > .rip-callout-copy{
  inset:14px 18px 18px!important;
  width:auto!important;
  max-width:none!important;
  font-size:var(--v234-live-font-size)!important;
  line-height:1.08!important;
  overflow:hidden!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene #activationRipSpeech.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene #setupRipSpeech.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene #loginRipSpeech.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy{
  bottom:62px!important;
}

:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene .setup-rip,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene .setup-rip,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene .setup-rip{
  position:relative!important;
  grid-column:2!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:end!important;
  justify-self:end!important;
  width:100%!important;
  max-width:132px!important;
  height:auto!important;
  max-height:184px!important;
  margin:0!important;
  transform:none!important;
  object-fit:contain!important;
  object-position:right bottom!important;
}

/* Rip is the visible validation system. Error copy is unmistakably red while
   the bubble itself stays light and readable. The same treatment covers name,
   credential, and later onboarding validation notices. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene.rip-notification-error #activationRipSpeech.v234-rip-callout-host > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene.rip-notification-error #setupRipSpeech.v234-rip-callout-host > .rip-callout-copy,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene.rip-notification-error #loginRipSpeech.v234-rip-callout-host > .rip-callout-copy{
  color:#BF0D3E!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene.rip-notification-error #activationRipSpeech.v234-rip-callout-host > .v234-rip-callout-art .v234-rip-callout-shape,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene.rip-notification-error #setupRipSpeech.v234-rip-callout-host > .v234-rip-callout-art .v234-rip-callout-shape,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene.rip-notification-error #loginRipSpeech.v234-rip-callout-host > .v234-rip-callout-art .v234-rip-callout-shape{
  fill:#FFF1F4!important;
  stroke:#BF0D3E!important;
}

@media(max-width:390px){
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene{
    grid-template-columns:minmax(0,1fr) minmax(92px,29%)!important;
    column-gap:7px!important;
    width:100%!important;
    min-height:154px!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene #activationRipSpeech.v234-rip-callout-host,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene #setupRipSpeech.v234-rip-callout-host,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene #loginRipSpeech.v234-rip-callout-host{
    --v234-callout-height:142px;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene .setup-rip,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene .setup-rip,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene .setup-rip{
    max-width:112px!important;
    max-height:164px!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene #activationRipSpeech.v234-rip-callout-host > .rip-callout-copy,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene #setupRipSpeech.v234-rip-callout-host > .rip-callout-copy,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene #loginRipSpeech.v234-rip-callout-host > .rip-callout-copy{
    inset:13px 16px 17px!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportActivate #activationRipScene #activationRipSpeech.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportSetup #setupRipScene #setupRipSpeech.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportLogin #loginRipScene #loginRipSpeech.v234-rip-callout-host.v234-rip-has-actions > .rip-callout-copy{
    bottom:60px!important;
  }
}


/* ==========================================================================\n   BUGGY Passport v236 BASE R1 — Welcome Rip scale\n   User lock: Rip is approximately 2× the v235 BASE Welcome presentation while\n   the speech callout retains its existing dimensions. Only Welcome changes.\n   ========================================================================== */
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro{
  grid-template-columns:minmax(0,1fr) minmax(118px,38%)!important;
  grid-template-rows:auto auto auto!important;
  overflow:visible!important;
}

html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home #ripHomeSpeech.v234-rip-callout-host{
  width:100%!important;
  max-width:250px!important;
  height:var(--v234-callout-height)!important;
  min-height:var(--v234-callout-height)!important;
  z-index:4!important;
}

html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-large{
  width:min(300px,70vw)!important;
  max-width:none!important;
  height:auto!important;
  align-self:start!important;
  justify-self:end!important;
  margin-top:118px!important;
  margin-right:-8px!important;
  transform:none!important;
  z-index:2!important;
}

@media(max-width:380px){
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-large{
    width:min(278px,73vw)!important;
    margin-top:112px!important;
    margin-right:-10px!important;
  }
}


/* ==========================================================================
   BUGGY Passport v236 BASE R2 — canonical Welcome presenter geometry
   Locked relationship: speech callout is screen-left; Rip is screen-right.
   The callout retains its compact size while Rip carries the larger R1 scale.
   The renderer tail exits the callout's right edge and tracks Rip's mouth.
   ========================================================================== */
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(118px,38%)!important;
  grid-template-rows:auto auto auto!important;
  grid-template-areas:
    "speech rip"
    "ask rip"
    "entry entry"!important;
  align-items:start!important;
  column-gap:8px!important;
  row-gap:6px!important;
  overflow:visible!important;
}

html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home #ripHomeSpeech.v234-rip-callout-host{
  grid-area:speech!important;
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:start!important;
  justify-self:start!important;
  width:100%!important;
  max-width:250px!important;
  height:var(--v234-callout-height)!important;
  min-height:var(--v234-callout-height)!important;
  margin:0!important;
  transform:none!important;
  z-index:4!important;
}

html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-large{
  grid-area:rip!important;
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:start!important;
  justify-self:end!important;
  width:min(300px,70vw)!important;
  max-width:none!important;
  height:auto!important;
  margin:118px -8px 0 0!important;
  transform:none!important;
  z-index:2!important;
}

html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-ask-rip{
  grid-area:ask!important;
}

html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-entry-action-integrated{
  grid-area:entry!important;
}

@media(max-width:380px){
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro{
    grid-template-columns:minmax(0,1fr) minmax(108px,37%)!important;
    column-gap:6px!important;
  }
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-large{
    width:min(278px,73vw)!important;
    margin:112px -10px 0 0!important;
  }
}


/* ========================================================================== 
   BUGGY Passport v236 BASE R9 — reusable speaker-clearance Rip tail geometry
   Complete-build authority for the Welcome presenter. Bubble remains
   screen-left; Rip remains enlarged screen-right. The callout renderer now
   uses a reusable speaker-clearance endpoint: Rip's speaking anchor is a
   responsive reference, but the visible tail terminates in clear space to
   the left of Rip's head. The 2×-wide bottom tail base is preserved. ASK RIP
   and the approved R6 CHECK-IN / ACTIVATE placement remain unchanged.
   ========================================================================== */
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro{
  display:block!important;
  position:relative!important;
  width:100%!important;
  min-height:520px!important;
  height:auto!important;
  overflow:visible!important;
}

html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home #ripHomeSpeech.v234-rip-callout-host{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  width:min(250px,62vw)!important;
  max-width:250px!important;
  height:var(--v234-callout-height)!important;
  min-height:var(--v234-callout-height)!important;
  margin:0 0 0 28px!important;
  transform:none!important;
  z-index:4!important;
}

html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-ask-rip{
  position:absolute!important;
  left:96px!important;
  right:auto!important;
  top:148px!important;
  bottom:auto!important;
  display:flex!important;
  width:max-content!important;
  margin:0!important;
  z-index:6!important;
}

html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-entry-action-integrated{
  position:absolute!important;
  left:14px!important;
  right:auto!important;
  top:300px!important;
  bottom:auto!important;
  width:148px!important;
  max-width:148px!important;
  margin:0!important;
  justify-content:center!important;
  z-index:6!important;
}

html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-entry-button{
  width:100%!important;
  max-width:148px!important;
}

html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-large{
  position:absolute!important;
  top:120px!important;
  right:-22px!important;
  left:auto!important;
  bottom:auto!important;
  width:min(300px,70vw)!important;
  max-width:none!important;
  height:auto!important;
  margin:0!important;
  transform:none!important;
  z-index:5!important;
}

@media(max-width:420px){
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro{
    min-height:500px!important;
  }

  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home #ripHomeSpeech.v234-rip-callout-host{
    width:min(238px,63vw)!important;
    margin-left:18px!important;
  }

  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-ask-rip{
    left:76px!important;
    top:146px!important;
  }

  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-entry-action-integrated{
    left:12px!important;
    top:294px!important;
    width:138px!important;
    max-width:138px!important;
  }

  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-intro .home-entry-button{
    max-width:138px!important;
  }

  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #home .home-rip-large{
    top:114px!important;
    right:-24px!important;
    width:min(278px,73vw)!important;
  }
}


/* ==========================================================================
   BUGGY Passport v236 BASE R9 — short directional callout tail
   Tail attachment position remains the approved R8 location. Tail length is
   now independent and capped by the reusable renderer at 40px on Welcome.
   Rip provides direction only; the tail no longer stretches toward him.
   ========================================================================== */


/* ==========================================================================
   BUGGY Passport v236 BASE R10 — global Rip presentation system
   --------------------------------------------------------------------------
   Global rule: contextual Rip artwork is 1.5× the R9 size while callout boxes
   retain their approved dimensions. Welcome is intentionally excluded because
   its larger scale is separately approved. Side tails are rendered by the R10
   callout options as short, wide pointers with length independent of speaker
   distance. MOVE RIP / ASK RIP positioning continues to use the presenter's
   live bounding rectangle, so the controls follow the enlarged character.
   ========================================================================== */
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) :is(
  #passportActivate #activationRipScene .setup-rip,
  #passportSetup #setupRipScene .setup-rip,
  #passportLogin #loginRipScene .setup-rip,
  #passportIntroTour .passport-intro-rip,
  #passport #passportRipGuide .passport-context-rip-image,
  #trainingPage #trainingRipGuide .training-rip-image
){
  scale:1.5!important;
  transform-origin:right bottom!important;
}

/* Training lesson Rip is also part of the global presentation system even
   though it does not use a speech bubble. Reserve horizontal space so the
   enlarged image does not cover lesson copy. */
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #moduleTraining .lesson-top .rip.small.rip-waist{
  scale:1.5!important;
  transform-origin:left bottom!important;
  margin-right:34px!important;
}

/* Keep all callout boxes at their established R9 dimensions. Scaling applies
   to Rip artwork only, never the speech surface. */
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) :is(
  #activationRipSpeech,
  #setupRipSpeech,
  #loginRipSpeech,
  #passportIntroSpeech,
  #passportRipSpeech,
  #trainingRipSpeech,
  #v191RipInstructionCopy
).v234-rip-callout-host{
  scale:1!important;
}

@media(max-width:390px){
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #moduleTraining .lesson-top .rip.small.rip-waist{
    margin-right:30px!important;
  }
}


/* ==========================================================================
   BUGGY Passport v236 BASE R11 — contextual tail normalization
   --------------------------------------------------------------------------
   Welcome geometry remains exactly as approved in R10. All other reusable
   Rip callouts keep the global 1.5× presenter scale but return to a normal
   tail base and a much shorter fixed directional pointer so the tail does
   not cover Rip's face when the bubble and presenter are close together.
   ========================================================================== */


/* ==========================================================================\n   BUGGY Passport v236 BASE R16 — Passport intro presenter clearance\n   Reserve a real 1.5× Rip lane so the callout cannot hide the presenter.\n   ========================================================================== */
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-scene{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 225px!important;
  grid-template-rows:auto!important;
  align-items:center!important;
  column-gap:8px!important;
  min-height:360px!important;
  height:auto!important;
  overflow:visible!important;
}
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour #passportIntroSpeech.v234-rip-callout-host{
  --v234-callout-height:214px!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  height:214px!important;
  min-height:214px!important;
  align-self:center!important;
  justify-self:stretch!important;
  z-index:4!important;
}
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-rip{
  position:relative!important;
  width:150px!important;
  max-width:150px!important;
  height:auto!important;
  max-height:235px!important;
  justify-self:end!important;
  align-self:end!important;
  margin:0!important;
  z-index:3!important;
}
@media(max-width:390px){
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-scene{
    grid-template-columns:minmax(0,1fr) 205px!important;
    min-height:350px!important;
    column-gap:6px!important;
  }
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour #passportIntroSpeech.v234-rip-callout-host{
    --v234-callout-height:220px!important;
    height:220px!important;
    min-height:220px!important;
  }
}
\n\n/* ==========================================================================\n   BUGGY Passport v236 BASE R16 — modal presenter normalization\n   ========================================================================== */\nhtml.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-scene{\n  display:grid!important;\n  grid-template-columns:minmax(0,1fr) minmax(154px,42%)!important;\n  align-items:center!important;\n  column-gap:10px!important;\n  min-height:318px!important;\n  height:auto!important;\n  overflow:visible!important;\n}\nhtml.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour #passportIntroSpeech.v234-rip-callout-host{\n  --v234-callout-height:170px!important;\n  width:100%!important;\n  max-width:238px!important;\n  min-width:0!important;\n  height:170px!important;\n  min-height:170px!important;\n  align-self:center!important;\n  justify-self:start!important;\n  z-index:4!important;\n}\nhtml.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-rip{\n  position:relative!important;\n  width:min(190px,42vw)!important;\n  max-width:190px!important;\n  height:auto!important;\n  max-height:300px!important;\n  justify-self:end!important;\n  align-self:end!important;\n  margin:0!important;\n  z-index:2!important;\n}\nhtml.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour #passportIntroSpeech .v234-rip-actions{\n  z-index:6!important;\n}\n@media(max-width:390px){\n  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-scene{\n    grid-template-columns:minmax(0,1fr) minmax(145px,41%)!important;\n    min-height:304px!important;\n    column-gap:8px!important;\n  }\n  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour #passportIntroSpeech.v234-rip-callout-host{\n    --v234-callout-height:176px!important;\n    max-width:220px!important;\n    height:176px!important;\n    min-height:176px!important;\n  }\n  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-rip{\n    width:min(176px,43vw)!important;\n    max-width:176px!important;\n  }\n}\n

/* ==========================================================================
   BUGGY Passport v236 BASE R16 — one canonical intro presenter
   ========================================================================== */
/* Passport intro uses the same clean onboarding proportions: broad callout
   lane, compact waist-up Rip lane, short right-pointing tail. */
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-scene{
  display:grid!important;
  grid-template-columns:minmax(0,252px) minmax(118px,1fr)!important;
  align-items:end!important;
  justify-content:center!important;
  column-gap:4px!important;
  width:100%!important;
  min-height:270px!important;
  overflow:visible!important;
}
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour #passportIntroSpeech.v234-rip-callout-host{
  --v234-callout-width:252px!important;
  --v234-callout-height:170px!important;
  width:252px!important;
  max-width:64vw!important;
  height:170px!important;
  min-height:170px!important;
  justify-self:end!important;
  align-self:center!important;
  z-index:4!important;
}
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-rip{
  position:relative!important;
  scale:1!important;
  transform:none!important;
  width:min(142px,34vw)!important;
  max-width:142px!important;
  max-height:210px!important;
  height:auto!important;
  justify-self:start!important;
  align-self:end!important;
  margin:0!important;
  z-index:2!important;
}

/* Guardian invitation is no longer a separate visual dialect. Its speech host
   is rendered by BUGGYRipCalloutV234 and mirrors the Passport intro lanes. */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v202-guardian-invite-card.v235-r16-canonical-card{
  width:min(430px,calc(100vw - 28px))!important;
  min-height:390px!important;
  padding:18px 16px 16px!important;
  border:2px solid var(--sun,#FEBD3B)!important;
  border-radius:28px!important;
  background:var(--fog,#FFFDF7)!important;
  overflow:hidden!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v202-guardian-scene.v235-r16-canonical-scene{
  display:grid!important;
  grid-template-columns:minmax(0,252px) minmax(118px,1fr)!important;
  align-items:end!important;
  justify-content:center!important;
  column-gap:4px!important;
  width:100%!important;
  min-height:270px!important;
  padding:4px 0 0!important;
  overflow:visible!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v202GuardianSpeech.v234-rip-callout-host{
  --v234-callout-width:252px!important;
  --v234-callout-height:170px!important;
  position:relative!important;
  width:252px!important;
  max-width:64vw!important;
  height:170px!important;
  min-height:170px!important;
  margin:0!important;
  padding:0!important;
  justify-self:end!important;
  align-self:center!important;
  z-index:4!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v202-guardian-bubble.v235-r15-modal-bubble:after,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v202GuardianSpeech:after{
  content:none!important;
  display:none!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v202-guardian-rip.v235-r16-canonical-rip{
  position:relative!important;
  scale:1!important;
  transform:none!important;
  width:min(142px,34vw)!important;
  max-width:142px!important;
  max-height:210px!important;
  height:auto!important;
  margin:0!important;
  justify-self:start!important;
  align-self:end!important;
  z-index:2!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v202-guardian-progress,
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v202-guardian-actions{display:none!important;}

@media(max-width:390px){
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-scene,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v202-guardian-scene.v235-r16-canonical-scene{
    grid-template-columns:minmax(0,236px) minmax(108px,1fr)!important;
    column-gap:2px!important;
    min-height:252px!important;
  }
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour #passportIntroSpeech.v234-rip-callout-host,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v202GuardianSpeech.v234-rip-callout-host{
    --v234-callout-width:236px!important;
    width:236px!important;
    max-width:64vw!important;
  }
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-rip,
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v202-guardian-rip.v235-r16-canonical-rip{
    width:min(132px,35vw)!important;
    max-width:132px!important;
  }
}


/* ==========================================================================
   BUGGY Passport v236 BASE R19 — contained Passport intro presenter
   ========================================================================== */
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-scene{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(118px,36%)!important;
  align-items:end!important;
  justify-content:center!important;
  gap:6px!important;
  min-height:272px!important;
  margin:0!important;
  transform:none!important;
}
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour #passportIntroSpeech.v234-rip-callout-host{
  position:relative!important;
  left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
  width:100%!important;
  max-width:246px!important;
  min-width:0!important;
  align-self:center!important;
  justify-self:end!important;
  transform:none!important;
  z-index:4!important;
}
html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-rip{
  position:relative!important;
  left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
  width:min(146px,35vw)!important;
  max-width:146px!important;
  max-height:220px!important;
  margin:0!important;
  align-self:end!important;
  justify-self:start!important;
  transform:none!important;
  scale:1!important;
  z-index:2!important;
}
@media(max-width:390px){
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-scene{
    grid-template-columns:minmax(0,1fr) minmax(108px,35%)!important;
    gap:4px!important;
    min-height:250px!important;
  }
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour #passportIntroSpeech.v234-rip-callout-host{max-width:228px!important;}
  html.buggy-v235-pwa-shell :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #passportIntroTour .passport-intro-rip{width:min(132px,36vw)!important;max-width:132px!important;}
}


/* ========================================================================== 
   BUGGY Passport v236 BASE R19 — canonical presenter containment cleanup
   ========================================================================== */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v202-guardian-invite-card.v235-r16-canonical-card{
  min-height:420px!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v202-guardian-scene.v235-r16-canonical-scene{
  min-height:300px!important;
  grid-template-columns:minmax(0,264px) minmax(112px,1fr)!important;
  column-gap:6px!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v202GuardianSpeech.v234-rip-callout-host{
  --v234-callout-width:264px!important;
  --v234-callout-height:214px!important;
  width:264px!important;
  max-width:66vw!important;
  height:214px!important;
  min-height:214px!important;
  align-self:center!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v202GuardianSpeech .v234-rip-actions{
  margin-top:auto!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v202-guardian-rip.v235-r16-canonical-rip{
  max-height:198px!important;
  align-self:end!important;
  margin-bottom:4px!important;
}
@media(max-width:390px){
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v202-guardian-invite-card.v235-r16-canonical-card{min-height:408px!important;}
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) .v202-guardian-scene.v235-r16-canonical-scene{
    grid-template-columns:minmax(0,250px) minmax(96px,1fr)!important;
    min-height:292px!important;
  }
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v202GuardianSpeech.v234-rip-callout-host{
    --v234-callout-width:250px!important;
    width:250px!important;
    max-width:70vw!important;
  }
}

/* ========================================================================== 
   BUGGY Passport v236 BASE R27 — canonical status/info presenter authority
   --------------------------------------------------------------------------
   Every EMAIL / CELL / ID / INSURANCE / standing / tag instruction uses the
   same v191 presenter. This final-loaded canonical stylesheet alone owns its
   opaque callout and bottom-aligned Rip geometry.
   ========================================================================== */
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay .v191-rip-instruction{
  background:var(--fog,#FFFDF7)!important;
  isolation:isolate!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay .v191-rip-instruction-scene{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 118px!important;
  grid-template-rows:1fr!important;
  align-items:end!important;
  column-gap:8px!important;
  width:100%!important;
  min-height:250px!important;
  height:250px!important;
  padding:22px 0 0!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay #v191RipInstructionCopy.v234-rip-callout-host{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:center!important;
  justify-self:stretch!important;
  width:100%!important;
  max-width:none!important;
  height:var(--v234-callout-height)!important;
  margin:0!important;
  scale:1!important;
  z-index:4!important;
  background:var(--fog,#FFFDF7)!important;
  opacity:1!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay #v191RipInstructionCopy.v234-rip-callout-host > .rip-callout-copy{
  left:12px!important;
  right:12px!important;
  min-width:0!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
  hyphens:auto!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay #v191RipInstructionCopy.v234-rip-callout-host[data-v234-action-count="2"] > .rip-callout-copy{
  bottom:82px!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay #v191RipInstructionCopy.v234-rip-callout-host[data-v234-action-count="2"] > .v234-rip-actions:not(.v234-rip-actions-external){
  left:10px!important;
  right:10px!important;
  bottom:8px!important;
  width:auto!important;
  max-width:none!important;
  min-height:0!important;
  display:flex!important;
  flex-flow:column nowrap!important;
  align-items:stretch!important;
  gap:4px!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay #v191RipInstructionCopy.v234-rip-callout-host[data-v234-action-count="2"] > .v234-rip-actions > .v234-rip-action{
  width:100%!important;
  max-width:100%!important;
  min-height:28px!important;
  padding:4px 7px!important;
  white-space:normal!important;
  line-height:1.05!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay #v191RipInstructionCopy :is(.v234-rip-callout-art,.v234-rip-callout-body){
  background:var(--fog,#FFFDF7)!important;
  opacity:1!important;
}
html.buggy-v235-pwa-shell body :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay .v191-rip-instruction-rip{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  align-self:end!important;
  justify-self:end!important;
  width:118px!important;
  min-width:118px!important;
  max-width:118px!important;
  height:172px!important;
  min-height:172px!important;
  max-height:172px!important;
  margin:0!important;
  scale:1!important;
  transform:none!important;
  object-fit:contain!important;
  object-position:right bottom!important;
  z-index:2!important;
}
:is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay :is(.v191-rip-instruction-actions,.v196-status-presenter-progress){
  position:relative!important;
  z-index:6!important;
}

@media(max-width:380px){
  :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay .v191-rip-instruction-scene{
    grid-template-columns:minmax(0,1fr) 110px!important;
    min-height:240px!important;
    height:240px!important;
    column-gap:6px!important;
  }
  html.buggy-v235-pwa-shell body :is(#buggy-passport-app,#buggyBuddyDialog,#buggyBucksDialog,#buggyAvatarBuilder) #v191RipInstructionOverlay .v191-rip-instruction-rip{
    width:110px!important;
    min-width:110px!important;
    max-width:110px!important;
    height:166px!important;
    min-height:166px!important;
    max-height:166px!important;
  }
}
