/* Scoped controls only. The approved full-viewport intro is in effect.css. */
.brisoma-experience {
  --bxe-ink: #253b35;
  --bxe-muted: #6a7b73;
  --bxe-line: rgba(69, 96, 79, .17);
  --bxe-accent: #456955;
  --bxe-edge: max(18px, env(safe-area-inset-right));
  --bxe-bottom: max(18px, env(safe-area-inset-bottom));
  color: var(--bxe-ink);
  font: 400 14px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-align: left;
}
.brisoma-experience *, .brisoma-experience *::before, .brisoma-experience *::after { box-sizing: border-box; }
.brisoma-experience [hidden] { display: none !important; }
.brisoma-experience button, .brisoma-experience input { font: inherit; }
.brisoma-experience button {
  -webkit-tap-highlight-color: transparent;
  color: inherit;
  cursor: pointer;
  letter-spacing: normal;
  text-transform: none;
  margin: 0;
}
.brisoma-experience button:focus-visible, .brisoma-experience input:focus-visible {
  outline: 2px solid var(--bxe-accent);
  outline-offset: 3px;
}
.brisoma-experience .bxe-launcher {
  position: fixed;
  z-index: 1101;
  right: var(--bxe-edge);
  bottom: var(--bxe-bottom);
  display: grid;
  place-items: center;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid rgba(80, 104, 87, .24);
  border-radius: 50%;
  background: rgba(245, 248, 242, .94);
  box-shadow: 0 4px 20px rgba(24, 47, 35, .10);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  transition: background .2s, box-shadow .2s;
}
.brisoma-experience .bxe-launcher:hover { background: #fff; box-shadow: 0 5px 22px rgba(24, 47, 35, .16); }
.brisoma-experience .bxe-launcher svg, .brisoma-experience .bxe-close svg { display: block; }
.brisoma-experience .bxe-wave { display: none; }
.brisoma-experience[data-audio="playing"] .bxe-wave { display: block; }
.brisoma-experience[data-audio="playing"] .bxe-slash { display: none; }
.brisoma-experience .bxe-dot {
  position: absolute;
  right: 1px;
  bottom: 2px;
  width: 8px;
  height: 8px;
  border: 2px solid #f5f8f2;
  border-radius: 50%;
  background: #a4afa8;
}
.brisoma-experience[data-audio="playing"] .bxe-dot { background: #66875e; }
.brisoma-experience[data-audio="blocked"] .bxe-dot { background: #b19a66; }
.brisoma-experience .bxe-panel {
  position: fixed;
  z-index: 1100;
  right: var(--bxe-edge);
  bottom: calc(var(--bxe-bottom) + 56px);
  width: min(340px, calc(100vw - 36px));
  max-height: calc(100vh - 100px);
  max-height: calc(100dvh - 100px - env(safe-area-inset-bottom));
  overflow: auto;
  overscroll-behavior: contain;
  padding: 20px;
  border: 1px solid rgba(83, 109, 88, .19);
  border-radius: 20px;
  background: rgba(248, 250, 245, .97);
  box-shadow: 0 16px 55px rgba(30, 52, 40, .14);
  -webkit-backdrop-filter: blur(22px);
  backdrop-filter: blur(22px);
}
.brisoma-experience .bxe-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: -5px -10px 9px 0; }
.brisoma-experience .bxe-header h2 { margin: 0; font-family: inherit; font-size: 16px; line-height: 1.3; font-weight: 500; letter-spacing: -.02em; color: var(--bxe-ink); }
.brisoma-experience .bxe-close { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; }
.brisoma-experience .bxe-close:hover { background: rgba(69, 105, 85, .07); }
.brisoma-experience .bxe-transport { display: block; width: 100%; min-height: 44px; padding: 10px 15px; border: 1px solid var(--bxe-accent); border-radius: 11px; background: var(--bxe-accent); color: #fff; font-weight: 500; }
.brisoma-experience .bxe-transport:hover { background: #385b47; }
.brisoma-experience .bxe-status { margin: 9px 0 19px; min-height: 1.45em; font-size: 12px; line-height: 1.45; color: var(--bxe-muted); }
.brisoma-experience .bxe-volume-label { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; font-size: 12px; font-weight: 500; }
.brisoma-experience .bxe-volume-value { color: var(--bxe-muted); font-variant-numeric: tabular-nums; }
.brisoma-experience .bxe-volume { display: block; width: 100%; height: 32px; margin: 5px 0 14px; padding: 0; accent-color: var(--bxe-accent); cursor: pointer; }
.brisoma-experience .bxe-fieldset { display: block; min-width: 0; margin: 0 0 18px; padding: 0; border: 0; }
.brisoma-experience .bxe-fieldset legend { float: none; display: block; width: 100%; margin: 0 0 9px; padding: 0; color: var(--bxe-ink); font: inherit; font-size: 12px; font-weight: 500; }
.brisoma-experience .bxe-scenes { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.brisoma-experience .bxe-scene { min-height: 44px; padding: 9px 8px; border: 1px solid var(--bxe-line); border-radius: 10px; background: transparent; font-size: 12px; text-align: center; }
.brisoma-experience .bxe-scene[aria-pressed="true"] { border-color: rgba(69, 105, 85, .52); background: #e9efe4; color: #34573e; }
.brisoma-experience .bxe-levels { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 4px; background: rgba(102, 126, 101, .07); border-radius: 11px; }
.brisoma-experience .bxe-level { min-height: 40px; border: 1px solid transparent; border-radius: 8px; padding: 7px 3px; background: transparent; color: var(--bxe-muted); font-size: 12px; text-align: center; }
.brisoma-experience .bxe-level[aria-pressed="true"] { background: #fff; color: var(--bxe-ink); border-color: var(--bxe-line); box-shadow: 0 1px 4px rgba(30, 52, 40, .04); }
.brisoma-experience .bxe-cycle-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; margin: 0; padding: 14px 0 0; border-top: 1px solid var(--bxe-line); cursor: pointer; }
.brisoma-experience .bxe-cycle-title { display: block; font-size: 12px; font-weight: 500; }
.brisoma-experience .bxe-cycle-detail { display: block; margin-top: 3px; font-size: 11px; color: var(--bxe-muted); }
.brisoma-experience .bxe-cycle { width: 20px; height: 20px; flex: 0 0 20px; accent-color: var(--bxe-accent); margin: 0; }
@media (max-width: 420px) {
  .brisoma-experience { --bxe-edge: max(14px, env(safe-area-inset-right)); --bxe-bottom: max(14px, env(safe-area-inset-bottom)); }
  .brisoma-experience .bxe-panel { width: min(330px, calc(100vw - 28px)); padding: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .brisoma-experience .bxe-launcher { transition: none; }
}

/* Opposite corner from contact actions. Only the launcher is draggable. */
.brisoma-experience .bxe-launcher{left:max(22px,env(safe-area-inset-left));right:auto;bottom:max(22px,env(safe-area-inset-bottom));touch-action:none;user-select:none;cursor:grab}
.brisoma-experience[data-dragging] .bxe-launcher{cursor:grabbing;transition:none;box-shadow:0 8px 28px rgba(24,47,35,.22)}
.brisoma-experience .bxe-panel{left:max(22px,env(safe-area-inset-left));right:auto}
.brisoma-experience[dir=rtl]{text-align:right}

/* Same botanical seal family as the BRISOMA conversation and return controls. */
.brisoma-experience .bxe-launcher{border-radius:44% 56% 52% 48% / 50% 43% 57% 50%;border:1px solid #b6c4ad;background:radial-gradient(ellipse at 27% 18%,#ffffffec,transparent 68%),linear-gradient(145deg,#f8f4e8f5,#e8eee0f5);box-shadow:inset 0 1px 0 #fff,inset 0 0 0 3px #ffffff68,0 4px 14px #36462c1c;color:#526d53}
.brisoma-experience .bxe-launcher::before{content:"";position:absolute;inset:5px;border:1px solid #8c9d7436;border-radius:inherit;pointer-events:none;mask-image:linear-gradient(125deg,#000 10%,transparent 58%,#000)}
.brisoma-experience .bxe-launcher:hover{background:linear-gradient(145deg,#fffdf7,#eaf1e2);border-color:#91a586}
.brisoma-experience .bxe-dot{width:6px;height:6px;right:3px;bottom:4px;border-width:1px}

/* Default stack from the navigation/contact design; dragging overrides this position. */
body .brisoma-experience .bxe-launcher{left:auto;right:max(36px,env(safe-area-inset-right));bottom:calc(128px + env(safe-area-inset-bottom))}
@media(max-width:640px){body .brisoma-experience .bxe-launcher{right:max(23px,env(safe-area-inset-right));bottom:calc(114px + env(safe-area-inset-bottom))}}
