/* Authenticated first-login Flame opening. Entirely inert outside /rebrand. */
html.ke-rebrand-mode.ke-opening-flow-open,
html.ke-rebrand-mode.ke-opening-home-open { overflow: hidden; }

html.ke-rebrand-mode.ke-opening-route-pending :is(.ke-rebrand-shell-header, #screen-area, #tab-bar) {
  visibility: hidden !important;
}

html.ke-rebrand-mode .ke-opening-flow {
  background: #061824;
  color: #fffaf2;
  display: none;
  font-family: 'DM Sans', sans-serif;
  inset: 0;
  overflow: hidden;
  position: fixed;
  z-index: 100000;
}

html.ke-rebrand-mode .ke-opening-flow.show { display: block; }

html.ke-rebrand-mode .ke-opening-screen {
  align-items: center;
  background:
    radial-gradient(circle at 50% 42%, rgba(215,181,109,.11), transparent 36rem),
    #0b2028;
  color: #fffaf2;
  display: flex;
  justify-content: center;
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: hidden;
  overflow-y: auto;
  padding: max(28px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) max(32px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));
  position: relative;
  width: 100%;
}

html.ke-rebrand-mode .ke-opening-screen h1,
html.ke-rebrand-mode .ke-opening-screen h2,
html.ke-rebrand-mode .ke-opening-screen p { color: inherit !important; }

html.ke-rebrand-mode .ke-opening-screen h1,
html.ke-rebrand-mode .ke-opening-screen h2 {
  font-family: 'Playfair Display', serif;
  font-weight: 600;
}

html.ke-rebrand-mode .ke-opening-primary,
html.ke-rebrand-mode .ke-opening-secondary {
  border-radius: 999px;
  cursor: pointer;
  font: 800 12px/1 'DM Sans', sans-serif;
  min-height: 52px;
  padding: 0 28px;
}

html.ke-rebrand-mode .ke-opening-primary {
  background: linear-gradient(145deg, #f1d690, #c99b45);
  border: 1px solid #f8e4aa;
  box-shadow: 0 12px 30px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.45);
  color: #12252d;
}

html.ke-rebrand-mode .ke-opening-secondary {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(241,214,144,.48);
  color: #f1d690;
}

html.ke-rebrand-mode .ke-opening-primary:disabled,
html.ke-rebrand-mode .ke-opening-secondary:disabled { cursor: not-allowed; opacity: .42; }

html.ke-rebrand-mode .ke-opening-primary:focus-visible,
html.ke-rebrand-mode .ke-opening-secondary:focus-visible,
html.ke-rebrand-mode .ke-opening-screen button:focus-visible,
html.ke-rebrand-mode .ke-opening-screen input:focus-visible,
html.ke-rebrand-mode .ke-opening-home-prompt button:focus-visible,
html.ke-rebrand-mode #ke-opening-flow-replay:focus-visible {
  outline: 3px solid #fff4ca !important;
  outline-offset: 4px !important;
}

html.ke-rebrand-mode .ke-opening-error {
  color: #ffd2d5 !important;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  min-height: 18px;
}

html.ke-rebrand-mode .ke-opening-sr-only,
html.ke-rebrand-mode .ke-opening-replay-status {
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* Screen 1: press-and-hold ignition. */
html.ke-rebrand-mode .ke-opening-screen.is-ignition {
  background: #000;
  overflow: hidden;
  padding: 0;
  text-align: center;
  transition: background .8s cubic-bezier(.2,.72,.2,1);
}

html.ke-rebrand-mode .ke-opening-screen.is-ignition:focus { outline: 0; }

html.ke-rebrand-mode .ke-opening-ignition-copy {
  inset: 0;
  pointer-events: none;
  position: absolute;
  transform: none;
  transition: opacity .32s ease, transform .42s ease;
  width: 100%;
  z-index: 4;
}

html.ke-rebrand-mode .ke-opening-ignition-copy p {
  left: 0;
  margin: 0 auto;
  opacity: 0;
  position: absolute;
  right: 0;
  transform: translateY(8px);
  width: calc(100% - 24px);
}

html.ke-rebrand-mode .ke-opening-ignition-copy p:nth-child(1),
html.ke-rebrand-mode .ke-opening-ignition-copy p:nth-child(2) {
  font: 500 clamp(25px, 7.9vw, 38px)/1.12 'Playfair Display', serif;
  white-space: nowrap;
}

html.ke-rebrand-mode .ke-opening-ignition-copy p:nth-child(1) {
  top: max(92px, calc(env(safe-area-inset-top) + 80px));
}

html.ke-rebrand-mode .ke-opening-ignition-copy p:nth-child(2) {
  top: max(142px, calc(env(safe-area-inset-top) + 130px));
}

html.ke-rebrand-mode .ke-opening-ignition-copy p:nth-child(3) {
  bottom: max(88px, calc(env(safe-area-inset-bottom) + 72px));
  font: 500 clamp(27px, 4.6vw, 36px)/1.12 'Playfair Display', serif;
  white-space: nowrap;
}

html.ke-rebrand-mode .ke-opening-flow.show .ke-opening-ignition-copy p:nth-child(1) { animation: keOpeningLineIn .62s 1.5s ease forwards; }
html.ke-rebrand-mode .ke-opening-flow.show .ke-opening-ignition-copy p:nth-child(2) { animation: keOpeningLineIn .62s 2.42s ease forwards; }
html.ke-rebrand-mode .ke-opening-flow.show .ke-opening-ignition-copy p:nth-child(3) { animation: keOpeningLineIn .62s 3.34s ease forwards; color: #ddbd71 !important; }

@keyframes keOpeningLineIn { to { opacity: 1; transform: translateY(0); } }

html.ke-rebrand-mode .ke-opening-ignition-field {
  align-items: center;
  display: flex;
  height: clamp(260px, 42vw, 350px);
  justify-content: center;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%,-50%);
  width: clamp(260px, 42vw, 350px);
  z-index: 5;
}

html.ke-rebrand-mode .ke-opening-ember {
  align-items: center;
  appearance: none;
  background: transparent;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  height: 154px;
  justify-content: center;
  padding: 0;
  position: relative;
  touch-action: none;
  width: 154px;
  z-index: 4;
}

html.ke-rebrand-mode .ke-opening-ember-core {
  animation: keOpeningEmberBreathe 4s ease-in-out infinite;
  background: radial-gradient(circle at 48% 43%, #fffbe7 0 9%, #ffdc70 14%, #d27a20 31%, #7a270f 55%, rgba(80,17,5,.08) 78%);
  border-radius: 50%;
  box-shadow:
    0 0 var(--ke-hold-glow) rgba(255,161,37,var(--ke-hold-alpha)),
    0 0 var(--ke-hold-inner-glow) rgba(255,233,155,.85);
  height: var(--ke-hold-size);
  transform: scale(var(--ke-hold-scale));
  transition: box-shadow .08s linear, height .08s linear, transform .08s linear;
  width: var(--ke-hold-size);
}

html.ke-rebrand-mode .ke-opening-ember-ring {
  border: 1px solid rgba(235,189,85,var(--ke-hold-ring-alpha));
  border-radius: 50%;
  inset: var(--ke-hold-ring-inset);
  position: absolute;
  transform: scale(var(--ke-hold-ring-scale));
}

html.ke-rebrand-mode .ke-opening-ember.is-held .ke-opening-ember-core { animation: none; }

@keyframes keOpeningEmberBreathe { 0%,100% { transform: scale(.78); opacity: .72; } 50% { transform: scale(.94); opacity: 1; } }

html.ke-rebrand-mode .ke-opening-ignition-release {
  background: #06151c;
  inset: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  position: fixed;
  transition: opacity .55s cubic-bezier(.2,.72,.2,1);
  visibility: hidden;
  z-index: 3;
}

html.ke-rebrand-mode .ke-opening-ignition-release::before {
  background: radial-gradient(circle,#fffdf0 0 6%,#ffe29a 12%,rgba(230,145,44,.96) 25%,rgba(126,40,24,.78) 43%,rgba(42,40,48,.42) 61%,transparent 75%);
  border-radius: 50%;
  content: '';
  height: clamp(120px, 30vw, 220px);
  left: 50%;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translate(-50%,-50%) scale(.18);
  width: clamp(120px, 30vw, 220px);
}

html.ke-rebrand-mode .ke-opening-ignition-release img {
  filter: blur(18px) drop-shadow(0 0 36px rgba(255,218,121,.9));
  left: 50%;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translate(-50%,-44%) scale(.5);
  width: clamp(180px, 52vw, 430px);
}

html.ke-rebrand-mode .ke-opening-flow.is-igniting .ke-opening-screen.is-ignition { background: #06151c; }
html.ke-rebrand-mode .ke-opening-flow.is-igniting .ke-opening-ignition-copy { opacity: 0; transform: translateY(-18px); }
html.ke-rebrand-mode .ke-opening-flow.is-igniting .ke-opening-ember { pointer-events: none; }
html.ke-rebrand-mode .ke-opening-flow.is-igniting .ke-opening-ignition-release { opacity: 1; visibility: visible; }
html.ke-rebrand-mode .ke-opening-flow.is-igniting .ke-opening-ignition-release::before { animation: keOpeningIgnitionWash 1.05s cubic-bezier(.15,.72,.12,1) both; }
html.ke-rebrand-mode .ke-opening-flow.is-igniting .ke-opening-ignition-release img { animation: keOpeningMarkForm 1.05s cubic-bezier(.18,.76,.16,1) both; }
html.ke-rebrand-mode .ke-opening-flow.is-igniting .ke-opening-ember-core { animation: keOpeningEmberRelease 1.05s cubic-bezier(.12,.72,.12,1) both; }
html.ke-rebrand-mode .ke-opening-flow.is-igniting .ke-opening-ember-ring {
  animation: keOpeningEmberRingRelease .72s ease-out both;
  border-color: rgba(235,189,85,.78);
}

@keyframes keOpeningIgnitionWash {
  0% { opacity: 0; transform: translate(-50%,-50%) scale(.18); }
  16% { opacity: 1; }
  64% { opacity: .96; transform: translate(-50%,-50%) scale(7.2); }
  100% { opacity: .18; transform: translate(-50%,-50%) scale(10); }
}

@keyframes keOpeningMarkForm {
  0%,32% { filter: blur(18px) drop-shadow(0 0 42px rgba(255,218,121,.95)); opacity: 0; transform: translate(-50%,-42%) scale(.5); }
  68% { filter: blur(3px) drop-shadow(0 0 30px rgba(255,218,121,.72)); opacity: .92; }
  100% { filter: blur(0) drop-shadow(0 0 16px rgba(255,218,121,.42)); opacity: 1; transform: translate(-50%,-62%) scale(1); }
}

@keyframes keOpeningEmberRelease {
  0% { opacity: 1; transform: scale(1.35); }
  42% { box-shadow: 0 0 120px 48px rgba(255,185,69,.94),0 0 36px 15px rgba(255,251,224,1); opacity: 1; transform: scale(2.1); }
  100% { box-shadow: 0 0 190px 86px rgba(255,190,77,0),0 0 56px 24px rgba(255,251,224,0); opacity: 0; transform: scale(4.6); }
}

@keyframes keOpeningEmberRingRelease {
  from { opacity: .9; transform: scale(1.1); }
  to { opacity: 0; transform: scale(4.4); }
}

html.ke-rebrand-mode .ke-opening-screen.is-ignition .ke-opening-screen-restart {
  animation: keOpeningRestartReveal .3s 3.8s ease both;
  opacity: 0;
}

@keyframes keOpeningRestartReveal { to { opacity: 1; } }

/* Screen 2: thirty-second cinematic ignition and transformation story. */
html.ke-rebrand-mode .ke-opening-screen.is-story { background: #06151c; overflow: visible; padding: 0; }

html.ke-rebrand-mode .ke-opening-skip {
  background: rgba(8,24,31,.6);
  border: 1px solid rgba(229,197,123,.42);
  border-radius: 999px;
  color: #ead18e;
  cursor: pointer;
  font: 700 11px 'DM Sans', sans-serif;
  min-height: 42px;
  padding: 0 17px;
  position: absolute;
  right: max(18px, env(safe-area-inset-right));
  top: max(18px, env(safe-area-inset-top));
  z-index: 8;
}

html.ke-rebrand-mode .ke-opening-story-stage {
  align-items: center;
  background: radial-gradient(circle at 50% 48%, rgba(215,181,109,.12), transparent 38rem);
  display: flex;
  inset: 0;
  justify-content: center;
  position: absolute;
  transition: background 1.2s ease;
  overflow: visible;
}

html.ke-rebrand-mode .ke-opening-story-aura {
  background: radial-gradient(circle, rgba(241,202,98,.2), transparent 66%);
  border-radius: 50%;
  height: min(78vw, 580px);
  position: absolute;
  transform: scale(.54);
  transition: transform 1.5s ease, opacity 1.5s ease;
  width: min(78vw, 580px);
}

html.ke-rebrand-mode .ke-opening-story-flame {
  filter: drop-shadow(0 0 26px rgba(238,188,61,.62));
  height: min(72dvh, 660px);
  overflow: visible;
  position: relative;
  transform: scale(.58);
  transition: filter 1.3s ease, opacity 1.3s ease, transform 1.3s cubic-bezier(.2,.74,.24,1);
  width: min(86vw, 560px);
  z-index: 4;
}

html.ke-rebrand-mode .ke-opening-story-flame::before,
html.ke-rebrand-mode .ke-opening-story-flame::after {
  animation: keOpeningStorySparkLift 2.8s cubic-bezier(.32,.08,.22,1) infinite;
  background: #fff9dc;
  border-radius: 999px;
  box-shadow: -112px 72px 0 -1px #f3d383, 102px 36px 0 -1px #fff4c4, -72px -38px 0 -2px #f2c95f, 132px -76px 0 -2px #fff8dc;
  content: '';
  filter: drop-shadow(0 0 9px rgba(248,211,105,.95));
  height: 12px;
  left: 50%;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 54%;
  width: 6px;
  z-index: 3;
}

html.ke-rebrand-mode .ke-opening-story-flame::after {
  animation-delay: -1.35s;
  box-shadow: -142px 28px 0 -2px #fff4c4, 78px 82px 0 -1px #f3d383, -38px -74px 0 -2px #fff8dc, 148px -12px 0 -2px #f2c95f;
  height: 9px;
  width: 5px;
}

html.ke-rebrand-mode .ke-opening-story-flame svg { height: 100%; width: 100%; }
html.ke-rebrand-mode .ke-opening-story-flame-media,
html.ke-rebrand-mode .ke-opening-story-flame-fallback {
  display: block;
  height: 100%;
  pointer-events: none;
  width: 100%;
}
html.ke-rebrand-mode .ke-opening-story-flame-media {
  -webkit-mask-image: radial-gradient(ellipse 55% 60% at 50% 50%,#000 0 68%,rgba(0,0,0,.94) 78%,rgba(0,0,0,.42) 89%,transparent 100%);
  mask-image: radial-gradient(ellipse 55% 60% at 50% 50%,#000 0 68%,rgba(0,0,0,.94) 78%,rgba(0,0,0,.42) 89%,transparent 100%);
  mix-blend-mode: screen;
  object-fit: contain;
  overflow: visible;
  position: relative;
  transform: scale(.88);
  transform-origin: center;
  z-index: 1;
}
html.ke-rebrand-mode .ke-opening-story-flame-fallback { display: none; }
html.ke-rebrand-mode .ke-opening-story-flame.is-media-fallback .ke-opening-story-flame-media { display: none; }
html.ke-rebrand-mode .ke-opening-story-flame.is-media-fallback .ke-opening-story-flame-fallback { display: block; }
html.ke-rebrand-mode .ke-opening-story-stage[data-opening-story-scene="sixty"] .ke-opening-story-flame { transform: scale(.65); }
html.ke-rebrand-mode .ke-opening-story-stage[data-opening-story-scene="growing"] .ke-opening-story-flame { transform: scale(.76); }
html.ke-rebrand-mode .ke-opening-story-stage[data-opening-story-scene="steady"] .ke-opening-story-flame { transform: scale(.86); }
html.ke-rebrand-mode .ke-opening-story-stage[data-opening-story-scene="night"] .ke-opening-story-flame { filter: grayscale(.42) brightness(.72) drop-shadow(0 0 12px rgba(238,188,61,.35)); transform: scale(.49); }
html.ke-rebrand-mode .ke-opening-story-stage[data-opening-story-scene="day-thirty"] .ke-opening-story-flame { transform: scale(.98); }
html.ke-rebrand-mode .ke-opening-story-stage[data-opening-story-scene="build"] .ke-opening-story-flame { filter: drop-shadow(0 0 58px rgba(240,198,79,.9)); transform: scale(1.06); }
html.ke-rebrand-mode .ke-opening-story-stage[data-opening-story-scene="day-thirty"] .ke-opening-story-aura,
html.ke-rebrand-mode .ke-opening-story-stage[data-opening-story-scene="build"] .ke-opening-story-aura { opacity: 1; transform: scale(1.15); }

html.ke-rebrand-mode .ke-opening-story-line {
  bottom: max(90px, calc(env(safe-area-inset-bottom) + 68px));
  font: 500 clamp(25px, 5vw, 48px)/1.15 'Playfair Display', serif;
  left: 22px;
  margin: 0;
  max-width: 760px;
  position: absolute;
  right: 22px;
  text-align: center;
  text-shadow: 0 4px 22px #02080b;
  z-index: 6;
}

html.ke-rebrand-mode .ke-opening-story-progress { background: rgba(255,255,255,.12); bottom: max(26px, env(safe-area-inset-bottom)); height: 3px; left: 8%; overflow: hidden; position: absolute; right: 8%; z-index: 8; }
html.ke-rebrand-mode .ke-opening-story-progress i { animation: none; background: linear-gradient(90deg,#bd8f37,#f3dda2); display: block; height: 100%; transform: scaleX(0); transform-origin: left; width: 100%; }
@keyframes keOpeningStoryProgress { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* The ignition now becomes the member's first thirty-second practice. The
   generated Flame owns the full frame; guidance remains live HTML below it.
   Keep the media transparent, but isolate the practice on an opaque backdrop
   so the authenticated app shell cannot show through the opening. */
html.ke-rebrand-mode .ke-opening-screen.is-story {
  background: #000;
  overflow: hidden;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage {
  align-items: stretch;
  background: #000;
  justify-content: stretch;
  overflow: hidden;
  transition: none;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage::before,
html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage::after {
  content: '';
  inset: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage::before {
  background: radial-gradient(circle at 50% 47%,rgba(245,203,87,.3),rgba(210,112,37,.11) 22%,transparent 52%);
  z-index: 3;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage::after {
  background: #000;
  transition: opacity .95s ease;
  z-index: 10;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage.is-karamo-glow::before {
  animation: keOpeningKaramoFinalAura 3.85s ease-in-out both;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage.is-story-ending::after {
  opacity: 1;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage.is-ember-ignition { background: #000; }
html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage.is-transformation { background: #000; }

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-skip {
  background: rgba(8,24,31,.72);
  box-shadow: 0 8px 24px rgba(0,0,0,.22);
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-aura { display: none; }

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-flame {
  filter: none !important;
  height: 100%;
  inset: 0;
  overflow: hidden;
  position: absolute;
  transform: none !important;
  transition: none;
  width: 100%;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-flame-media,
html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-flame-fallback {
  inset: 0;
  opacity: 0;
  position: absolute;
  transition: none;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-flame-media.is-media-error { display: none; }

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage.is-ember-ignition .is-ember-film,
html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage.is-transformation .is-transformation-film {
  opacity: 1;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage.is-ember-ignition .ke-opening-story-flame.is-media-fallback .ke-opening-story-flame-fallback,
html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage.is-transformation .ke-opening-story-flame.is-media-fallback .ke-opening-story-flame-fallback {
  display: block;
  opacity: 1;
}

html.ke-rebrand-mode .ke-opening-cinematic-brand {
  align-items: center;
  background: #000;
  display: flex;
  inset: 0;
  justify-content: center;
  overflow: hidden;
  pointer-events: none;
  position: absolute;
  z-index: 7;
}

html.ke-rebrand-mode .ke-opening-story-stage:not(.is-brand-reveal) .ke-opening-cinematic-brand {
  opacity: 0;
  visibility: hidden;
}

html.ke-rebrand-mode .ke-opening-cinematic-brand::before,
html.ke-rebrand-mode .ke-opening-cinematic-brand::after {
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute;
}

html.ke-rebrand-mode .ke-opening-cinematic-brand::before {
  animation: keOpeningCinematicGlow 1.2s ease-out both;
  background: radial-gradient(circle at 50% 50%,rgba(235,190,91,.22),transparent 42%);
}

html.ke-rebrand-mode .ke-opening-cinematic-brand::after {
  animation: keOpeningCinematicBlackout 4.25s linear both;
  background: #000;
  opacity: 0;
  z-index: 3;
}

html.ke-rebrand-mode .ke-opening-cinematic-flare {
  animation: keOpeningCinematicFlare .85s ease-out both;
  background: radial-gradient(circle,rgba(255,252,225,.92) 0 1.5%,rgba(235,185,80,.68) 4%,rgba(181,77,34,.22) 17%,transparent 52%);
  height: min(130vw,760px);
  position: absolute;
  width: min(130vw,760px);
}

html.ke-rebrand-mode .ke-opening-cinematic-lockup {
  align-items: center;
  animation: keOpeningCinematicLockup 4.25s cubic-bezier(.16,1,.3,1) both;
  backface-visibility: hidden;
  display: flex;
  gap: clamp(18px,2.4vw,36px);
  justify-content: center;
  max-width: min(88vw,1120px);
  position: relative;
  width: min(82vw,980px);
  z-index: 2;
}

html.ke-rebrand-mode .ke-opening-cinematic-lockup img {
  display: block;
  filter: drop-shadow(0 10px 28px rgba(0,0,0,.32));
  object-fit: contain;
}

html.ke-rebrand-mode .ke-opening-cinematic-ke-logo {
  flex: 0 1 18%;
  height: auto;
  max-height: min(18dvh,150px);
  min-width: 0;
  width: 18%;
}

html.ke-rebrand-mode .ke-opening-cinematic-by {
  color: rgba(255,250,242,.78);
  flex: 0 0 auto;
  font-family: 'Cormorant Garamond',Georgia,serif;
  font-size: clamp(28px,4.4vw,64px);
  font-style: italic;
  font-weight: 500;
  line-height: 1;
}

html.ke-rebrand-mode .ke-opening-cinematic-karamo-logo {
  flex: 0 1 62%;
  height: auto;
  max-height: min(26dvh,260px);
  min-width: 0;
  width: 62%;
}

@keyframes keOpeningCinematicLockup {
  0%,3% { filter: blur(12px); opacity: 0; transform: scale(.94); }
  12%,82% { filter: blur(0); opacity: 1; transform: scale(1); }
  100% { filter: blur(0); opacity: 1; transform: scale(1); }
}

@keyframes keOpeningCinematicBlackout {
  0%,82% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes keOpeningCinematicGlow {
  0% { opacity: 0; transform: scale(.55); }
  35% { opacity: 1; }
  100% { opacity: .5; transform: scale(1.2); }
}

@keyframes keOpeningCinematicFlare {
  0% { opacity: 0; transform: scale(.05); }
  18% { opacity: 1; transform: scale(.22); }
  100% { opacity: 0; transform: scale(1.15); }
}

@keyframes keOpeningKaramoFinalAura {
  0% { opacity: 0; transform: scale(.7); }
  42% { opacity: .9; transform: scale(1); }
  100% { opacity: .56; transform: scale(1.18); }
}

@keyframes keOpeningKaramoFinalGlow {
  0% { filter: brightness(1) saturate(1) drop-shadow(0 0 0 rgba(245,200,76,0)); }
  55%,100% { filter: brightness(1.14) saturate(1.08) drop-shadow(0 0 36px rgba(245,200,76,.68)); }
}

@media (orientation: portrait) {
  html.ke-rebrand-mode .ke-opening-cinematic-lockup {
    flex-direction: column;
    gap: clamp(9px,2dvh,18px);
    width: min(88vw,680px);
  }
  html.ke-rebrand-mode .ke-opening-cinematic-ke-logo {
    flex-basis: auto;
    max-height: 18dvh;
    width: min(28vw,210px);
  }
  html.ke-rebrand-mode .ke-opening-cinematic-by { font-size: clamp(24px,6vw,42px); }
  html.ke-rebrand-mode .ke-opening-cinematic-karamo-logo {
    flex-basis: auto;
    max-height: 24dvh;
    width: min(88vw,640px);
  }
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-flame::before,
html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-flame::after { display: none; }

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-flame-media,
html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-flame-fallback {
  background: transparent;
  height: 100%;
  object-fit: contain;
  object-position: center;
  width: 100%;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-flame-media {
  -webkit-mask-image: none;
  mask-image: none;
  mix-blend-mode: normal;
  transform-origin: center 46%;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-flame-media.is-ember-film {
  transform: translateY(-3dvh) scale(.82);
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-flame-media.is-transformation-film {
  transform: translateY(-2dvh) scale(.86);
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-stage.is-karamo-glow .is-transformation-film {
  animation: keOpeningKaramoFinalGlow 3.85s ease-in-out both;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-line {
  bottom: max(16dvh,calc(env(safe-area-inset-bottom) + 172px));
  color: #fff9ed;
  font-size: clamp(25px,4.8vw,44px);
  left: 24px;
  line-height: 1.12;
  margin: 0 auto;
  max-width: min(88vw,760px);
  opacity: 0;
  right: 24px;
  text-shadow: 0 4px 24px rgba(0,0,0,.92);
  transform: translateY(14px);
  transition: opacity .72s ease,transform .72s cubic-bezier(.22,.75,.24,1);
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-line.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 760px) {
  html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-line {
    bottom: max(11dvh,calc(env(safe-area-inset-bottom) + 128px));
  }
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-story-progress i {
  animation: none;
  transform: scaleX(0);
}

@keyframes keOpeningStorySparkLift {
  0% { opacity: 0; transform: translate3d(0,70px,0) scale(.42); }
  18% { opacity: .92; }
  76% { opacity: .66; }
  100% { opacity: 0; transform: translate3d(0,-116px,0) scale(1.08); }
}

/* Screen 3 and the adapted authenticated handoff. */
html.ke-rebrand-mode .ke-opening-name-main,
html.ke-rebrand-mode .ke-opening-meet-main,
html.ke-rebrand-mode .ke-opening-notification-main,
html.ke-rebrand-mode .ke-opening-checkin-main,
html.ke-rebrand-mode .ke-opening-recap-main,
html.ke-rebrand-mode .ke-opening-plan-main,
html.ke-rebrand-mode .ke-opening-offer-main {
  margin: auto;
  max-width: 760px;
  position: relative;
  text-align: center;
  width: 100%;
  z-index: 2;
}

html.ke-rebrand-mode .ke-opening-name-flame {
  filter: drop-shadow(0 0 var(--ke-name-glow) rgba(238,190,67,.72));
  height: var(--ke-name-flame-height);
  margin: 0 auto 28px;
  transition: filter .2s ease, height .2s ease;
  width: 140px;
}

html.ke-rebrand-mode .ke-opening-name-flame svg { height: 100%; width: 100%; }
html.ke-rebrand-mode .ke-opening-name-flame {
  height: clamp(160px,21dvh,220px);
  overflow: hidden;
  width: clamp(126px,24vw,176px);
}
html.ke-rebrand-mode .ke-opening-name-flame-picture {
  display: block;
  height: 100%;
  width: 100%;
}
html.ke-rebrand-mode .ke-opening-name-flame-media {
  background: transparent;
  display: block;
  height: 100%;
  object-fit: contain;
  object-position: 50% 50%;
  width: 100%;
}
html.ke-rebrand-mode .ke-opening-screen.is-typing .ke-opening-name-flame svg { animation: keOpeningTypeFlicker .32s ease; }
html.ke-rebrand-mode .ke-opening-screen.is-typing .ke-opening-name-flame-media { animation: keOpeningTypeFlicker .32s ease; }
@keyframes keOpeningTypeFlicker { 50% { transform: scale(1.08) rotate(1.5deg); } }

html.ke-rebrand-mode .ke-opening-name-main h1 { font-size: clamp(34px,6vw,62px); line-height: 1.08; margin: 0 auto 34px; max-width: 720px; }
html.ke-rebrand-mode .ke-opening-name-main label { color: #e6c984; display: block; font-size: 10px; font-weight: 800; letter-spacing: 1.2px; margin: 0 auto 8px; max-width: 440px; text-align: left; text-transform: uppercase; }
html.ke-rebrand-mode .ke-opening-name-main input { background: #fffaf2; border: 2px solid #e2bd69; border-radius: 18px; box-sizing: border-box; color: #142730; display: block; font: 600 25px 'Playfair Display', serif; height: 64px !important; margin: 0 auto 6px; max-width: 440px; min-height: 64px !important; padding: 0 18px; text-align: center; width: 100%; }
html.ke-rebrand-mode .ke-opening-name-main .ke-opening-error { margin: 8px auto 3px; }
html.ke-rebrand-mode .ke-opening-name-main .ke-opening-primary { min-width: 220px; }
html.ke-rebrand-mode .ke-opening-name-landing { color: #f0d38d !important; font: 600 27px 'Playfair Display', serif; min-height: 37px; opacity: 0; }
html.ke-rebrand-mode .ke-opening-screen.is-name-landed .ke-opening-name-landing { animation: keOpeningNameLand .5s ease forwards; }
@keyframes keOpeningNameLand { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

html.ke-rebrand-mode .ke-opening-screen.is-meet { overflow: hidden; }
html.ke-rebrand-mode .ke-opening-meet-aura { background: radial-gradient(circle, rgba(222,177,71,.35), rgba(109,41,66,.18) 35%, transparent 68%); border-radius: 50%; height: min(90vw,620px); left: 50%; position: absolute; top: 43%; transform: translate(-50%,-50%) scale(.55); transition: transform 3.5s ease; width: min(90vw,620px); }
html.ke-rebrand-mode .ke-opening-meet-flame { filter: drop-shadow(0 0 52px rgba(240,194,68,.76)); height: min(35vh,300px); margin: 0 auto 28px; transform: scale(.45); transition: transform 3.5s cubic-bezier(.2,.75,.2,1); width: min(28vh,235px); }
html.ke-rebrand-mode .ke-opening-meet-flame svg { height: 100%; width: 100%; }
html.ke-rebrand-mode .ke-opening-screen.is-meet.is-ready .ke-opening-meet-aura { transform: translate(-50%,-50%) scale(1); }
html.ke-rebrand-mode .ke-opening-screen.is-meet.is-ready .ke-opening-meet-flame { transform: scale(1); }
html.ke-rebrand-mode .ke-opening-meet-main h1 { font-size: clamp(38px,7vw,70px); line-height: 1; margin: 0 0 18px; }
html.ke-rebrand-mode .ke-opening-meet-main > p { color: rgba(255,250,242,.76) !important; font: 500 clamp(18px,3vw,25px)/1.45 'Cormorant Garamond', serif; margin: 0 auto 30px; max-width: 650px; }

/* Screens 7–16: the Flame is the progress bar. */
html.ke-rebrand-mode .ke-opening-screen.is-question,
html.ke-rebrand-mode .ke-opening-screen.is-reminders { align-items: stretch; display: block; padding: 0; }

html.ke-rebrand-mode .ke-opening-question-header {
  align-items: center;
  background: linear-gradient(#0b2028 80%,transparent);
  display: grid;
  grid-template-columns: 52px minmax(150px,1fr) 52px;
  min-height: 158px;
  padding: max(15px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 10px max(18px,env(safe-area-inset-left));
  position: sticky;
  top: 0;
  z-index: 10;
}

html.ke-rebrand-mode .ke-opening-question-header > button,
html.ke-rebrand-mode .ke-opening-simple-header button {
  align-items: center;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(225,191,114,.42);
  border-radius: 50%;
  color: #f0d28b;
  cursor: pointer;
  display: flex;
  font-size: 23px;
  height: 44px;
  justify-content: center;
  width: 44px;
}

html.ke-rebrand-mode .ke-opening-question-progress { align-items: center; display: flex; flex-direction: column; height: 132px; justify-content: flex-end; justify-self: center; position: relative; width: min(360px,100%); }
html.ke-rebrand-mode .ke-opening-progress-flame { filter: drop-shadow(0 0 17px rgba(238,189,61,.66)); height: var(--ke-opening-progress); max-height: 106px; min-height: 46px; transition: height .6s cubic-bezier(.2,.74,.2,1); width: 80px; }
html.ke-rebrand-mode .ke-opening-progress-flame svg { height: 100%; width: 100%; }
html.ke-rebrand-mode .ke-opening-progress-track { background: rgba(255,255,255,.1); border-radius: 999px; bottom: 13px; height: 3px; left: 0; overflow: hidden; position: absolute; right: 0; }
html.ke-rebrand-mode .ke-opening-progress-track i { background: linear-gradient(90deg,#9b6a22,#f0d28a); border-radius: inherit; display: block; height: 100%; transition: width .5s ease; width: var(--ke-opening-progress); }
html.ke-rebrand-mode .ke-opening-question-progress small { color: rgba(255,250,242,.4); font-size: 9px; letter-spacing: .8px; margin-top: 13px; }

html.ke-rebrand-mode .ke-opening-question-main,
html.ke-rebrand-mode .ke-opening-reminders-main {
  margin: 0 auto;
  max-width: 900px;
  padding: 22px max(22px,env(safe-area-inset-right)) 26px max(22px,env(safe-area-inset-left));
  text-align: center;
}

html.ke-rebrand-mode .ke-opening-question-main h1,
html.ke-rebrand-mode .ke-opening-reminders-main h1 { font-size: clamp(34px,5.8vw,58px); line-height: 1.06; margin: 8px auto 14px; max-width: 830px; }
html.ke-rebrand-mode .ke-opening-question-main > p,
html.ke-rebrand-mode .ke-opening-reminders-main > p { color: rgba(255,250,242,.64) !important; font: 500 18px 'Cormorant Garamond',serif; margin: 0 0 20px; }

html.ke-rebrand-mode .ke-opening-options { display: grid; gap: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 30px auto 0; max-width: 780px; }
html.ke-rebrand-mode .ke-opening-options.is-compact { grid-template-columns: repeat(4,minmax(0,1fr)); }
html.ke-rebrand-mode .ke-opening-options button {
  align-items: center;
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(221,185,103,.38);
  border-radius: 18px;
  color: #fffaf2;
  cursor: pointer;
  display: flex;
  gap: 12px;
  min-height: 72px;
  padding: 14px 16px;
  text-align: left;
}

html.ke-rebrand-mode .ke-opening-options button > span { border: 2px solid #d9b66d; border-radius: 50%; flex: 0 0 18px; height: 18px; position: relative; width: 18px; }
html.ke-rebrand-mode .ke-opening-options.is-multi button > span { border-radius: 5px; }
html.ke-rebrand-mode .ke-opening-options button strong { font: 600 15px/1.25 'Playfair Display',serif; }
html.ke-rebrand-mode .ke-opening-options button.is-selected { background: linear-gradient(145deg,rgba(109,41,66,.88),rgba(74,25,45,.9)); border-color: #edcc7e; box-shadow: 0 10px 28px rgba(0,0,0,.2),0 0 0 4px rgba(221,185,103,.08); }
html.ke-rebrand-mode .ke-opening-options button.is-selected > span::after { background: #efd184; border-radius: inherit; content: ''; inset: 3px; position: absolute; }

html.ke-rebrand-mode .ke-opening-question-footer { margin: 0 auto; max-width: 900px; padding: 0 22px max(32px,env(safe-area-inset-bottom)); text-align: center; }
html.ke-rebrand-mode .ke-opening-question-footer .ke-opening-primary { min-width: 230px; }


html.ke-rebrand-mode .ke-opening-time-grid { display: grid; gap: 14px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 38px auto 18px; max-width: 700px; }
html.ke-rebrand-mode .ke-opening-time-grid label { align-items: center; background: rgba(255,255,255,.045); border: 1px solid rgba(222,186,103,.4); border-radius: 20px; display: flex; gap: 14px; justify-content: space-between; min-height: 108px; padding: 18px; text-align: left; }
html.ke-rebrand-mode .ke-opening-time-grid label span,
html.ke-rebrand-mode .ke-opening-time-grid label strong,
html.ke-rebrand-mode .ke-opening-time-grid label small { display: block; }
html.ke-rebrand-mode .ke-opening-time-grid label strong { font: 600 21px 'Playfair Display',serif; }
html.ke-rebrand-mode .ke-opening-time-grid label small { color: rgba(255,250,242,.5); font-size: 9px; margin-top: 4px; }
html.ke-rebrand-mode .ke-opening-time-grid input { background: #fffaf2; border: 2px solid #d9b56d; border-radius: 13px; color: #13262e; color-scheme: light; font: 800 15px 'DM Sans',sans-serif; min-height: 50px; padding: 0 10px; }
html.ke-rebrand-mode .ke-opening-reminders-main .ke-opening-timezone { color: rgba(255,250,242,.48) !important; font: 700 9px 'DM Sans',sans-serif; letter-spacing: .5px; margin: 0 0 14px; }
html.ke-rebrand-mode .ke-opening-reminders-main .ke-opening-primary { min-width: 220px; }

/* Permission framing after the user chooses their times. */
html.ke-rebrand-mode .ke-opening-notification-main { max-width: 620px; }
html.ke-rebrand-mode .ke-opening-notification-flame { filter: drop-shadow(0 0 34px rgba(239,193,70,.72)); height: 160px; margin: 0 auto 25px; width: 120px; }
html.ke-rebrand-mode .ke-opening-notification-flame svg { height: 100%; width: 100%; }
html.ke-rebrand-mode .ke-opening-notification-main > span,
html.ke-rebrand-mode .ke-opening-checkin-main > span,
html.ke-rebrand-mode .ke-opening-day-one-main > span { color: #e7c87e; display: block; font-size: 9px; font-weight: 900; letter-spacing: 1.3px; margin-bottom: 12px; }
html.ke-rebrand-mode .ke-opening-notification-main h1 { font-size: clamp(38px,7vw,65px); line-height: 1; margin: 0 0 18px; }
html.ke-rebrand-mode .ke-opening-notification-main > p { color: rgba(255,250,242,.64) !important; font: 500 19px/1.45 'Cormorant Garamond',serif; margin: 0 auto 23px; max-width: 520px; }
html.ke-rebrand-mode .ke-opening-notification-times { align-items: center; background: rgba(255,255,255,.045); border: 1px solid rgba(223,187,104,.35); border-radius: 18px; display: flex; justify-content: center; margin: 0 auto 24px; max-width: 410px; min-height: 74px; }
html.ke-rebrand-mode .ke-opening-notification-times strong { flex: 1; font: 600 19px 'Playfair Display',serif; }
html.ke-rebrand-mode .ke-opening-notification-times i { background: rgba(235,204,133,.3); height: 34px; width: 1px; }
html.ke-rebrand-mode .ke-opening-notification-main .ke-opening-primary,
html.ke-rebrand-mode .ke-opening-notification-main .ke-opening-secondary { display: block; margin: 10px auto 0; min-width: 230px; }

/* Screen 17: color-locked first Check-In. */
html.ke-rebrand-mode .ke-opening-screen.is-checkin { align-items: flex-start; }
html.ke-rebrand-mode .ke-opening-checkin-main { max-width: 960px; padding: 24px 0; }
html.ke-rebrand-mode .ke-opening-checkin-flame { filter: drop-shadow(0 0 30px rgba(239,192,68,.65)); height: 145px; margin: 0 auto 14px; transition: transform .6s cubic-bezier(.16,.85,.25,1); width: 110px; }
html.ke-rebrand-mode .ke-opening-checkin-flame svg { height: 100%; width: 100%; }
html.ke-rebrand-mode .ke-opening-checkin-main.has-selection .ke-opening-checkin-flame { animation: keOpeningCheckinJump .7s cubic-bezier(.2,.88,.24,1); transform: scale(1.32); }
@keyframes keOpeningCheckinJump { 0% { transform: translateY(20px) scale(.75); } 52% { transform: translateY(-28px) scale(1.38); } 100% { transform: translateY(0) scale(1.32); } }
html.ke-rebrand-mode .ke-opening-checkin-main h1 { font-size: clamp(38px,6.5vw,66px); line-height: 1; margin: 0 0 28px; }
html.ke-rebrand-mode .ke-opening-checkin-options { display: grid; gap: 14px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0 auto; max-width: 860px; }
html.ke-rebrand-mode .ke-opening-checkin-options button { border: 2px solid rgba(236,209,144,.72); border-radius: 24px; box-shadow: inset 0 1px rgba(255,255,255,.15),0 16px 32px rgba(0,0,0,.25); color: #fffaf2; cursor: pointer; min-height: 152px; padding: 22px; text-align: left; transition: transform .25s ease, box-shadow .25s ease; }
html.ke-rebrand-mode .ke-opening-checkin-options button.is-blazing { background: radial-gradient(circle at 25% 10%,#bb3441,#671723 67%); }
html.ke-rebrand-mode .ke-opening-checkin-options button.is-burning_bright { background: radial-gradient(circle at 25% 10%,#69a53e,#2b611b 67%); }
html.ke-rebrand-mode .ke-opening-checkin-options button.is-burning_low { background: radial-gradient(circle at 25% 10%,#7441a4,#32135e 67%); }
html.ke-rebrand-mode .ke-opening-checkin-options button.is-steady_glow { background: radial-gradient(circle at 25% 10%,#4f8ca0,#194e63 67%); }
html.ke-rebrand-mode .ke-opening-checkin-options button.is-selected { box-shadow: 0 0 0 5px rgba(241,214,144,.18),0 18px 42px rgba(0,0,0,.35); transform: translateY(-5px) scale(1.02); }
html.ke-rebrand-mode .ke-opening-checkin-options strong,
html.ke-rebrand-mode .ke-opening-checkin-options small { display: block; }
html.ke-rebrand-mode .ke-opening-checkin-options strong { font: 600 26px 'Playfair Display',serif; }
html.ke-rebrand-mode .ke-opening-checkin-options small { color: rgba(255,250,242,.75); font-size: 11px; line-height: 1.45; margin-top: 9px; }
html.ke-rebrand-mode .ke-opening-checkin-confirmation { margin: 25px auto 16px; max-width: 710px; }
html.ke-rebrand-mode .ke-opening-checkin-confirmation p { font: 500 19px/1.45 'Cormorant Garamond',serif; margin: 0 0 6px; }
html.ke-rebrand-mode .ke-opening-checkin-confirmation strong { color: #e8c97e; font-size: 11px; }
html.ke-rebrand-mode .ke-opening-checkin-main .ke-opening-primary { min-width: 210px; }

/* Exact-value recap. */
html.ke-rebrand-mode .ke-opening-screen.is-recap { background: #091d25; }
html.ke-rebrand-mode .ke-opening-recap-main { max-width: 760px; }
html.ke-rebrand-mode .ke-opening-recap-flame { filter: blur(.3px) drop-shadow(0 0 50px rgba(238,189,64,.6)); height: 300px; left: 50%; opacity: .19; position: absolute; top: 45%; transform: translate(-50%,-50%); width: 230px; z-index: -1; }
html.ke-rebrand-mode .ke-opening-recap-flame svg { height: 100%; width: 100%; }
html.ke-rebrand-mode .ke-opening-recap-main h1 { font-size: clamp(37px,6vw,63px); line-height: 1.03; margin: 0 auto 28px; }
html.ke-rebrand-mode .ke-opening-recap-main ul { display: grid; gap: 10px; list-style: none; margin: 0 auto 25px; max-width: 650px; padding: 0; text-align: left; }
html.ke-rebrand-mode .ke-opening-recap-main li { animation: keOpeningRecapLine .55s var(--ke-recap-delay) ease both; background: rgba(255,255,255,.045); border-left: 2px solid #d9b56d; border-radius: 0 12px 12px 0; padding: 11px 15px; }
@keyframes keOpeningRecapLine { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
html.ke-rebrand-mode .ke-opening-recap-main li small,
html.ke-rebrand-mode .ke-opening-recap-main li strong { display: block; }
html.ke-rebrand-mode .ke-opening-recap-main li small { color: #d8b66d; font-size: 8px; font-weight: 900; letter-spacing: .8px; text-transform: uppercase; }
html.ke-rebrand-mode .ke-opening-recap-main li strong { font: 600 17px 'Playfair Display',serif; margin-top: 3px; }
html.ke-rebrand-mode .ke-opening-recap-main > p { animation: keOpeningRecapLine .6s 2.45s ease both; color: rgba(255,250,242,.78) !important; font: 500 21px 'Cormorant Garamond',serif; margin: 0 auto 24px; }
html.ke-rebrand-mode .ke-opening-recap-main .ke-opening-primary { animation: keOpeningRecapLine .6s 2.8s ease both; }

/* Five-day plan. */
html.ke-rebrand-mode .ke-opening-simple-header { left: max(18px,env(safe-area-inset-left)); position: absolute; top: max(18px,env(safe-area-inset-top)); z-index: 8; }
html.ke-rebrand-mode .ke-opening-screen.is-plan { align-items: flex-start; }
html.ke-rebrand-mode .ke-opening-plan-main { max-width: 820px; padding: 55px 0 10px; }
html.ke-rebrand-mode .ke-opening-plan-main h1 { font-size: clamp(40px,7vw,68px); line-height: 1; margin: 0 0 27px; }
html.ke-rebrand-mode .ke-opening-plan-main ol { display: grid; gap: 10px; list-style: none; margin: 0 auto 25px; max-width: 700px; padding: 0; text-align: left; }
html.ke-rebrand-mode .ke-opening-plan-main li { align-items: center; background: rgba(255,255,255,.045); border: 1px solid rgba(216,181,101,.28); border-radius: 16px; display: grid; gap: 14px; grid-template-columns: 66px 1fr; min-height: 66px; padding: 10px 15px; }
html.ke-rebrand-mode .ke-opening-plan-main li span { color: #e0bf74; font-size: 9px; font-weight: 900; letter-spacing: .7px; text-transform: uppercase; }
html.ke-rebrand-mode .ke-opening-plan-main li strong { font: 600 17px/1.25 'Playfair Display',serif; }
html.ke-rebrand-mode .ke-opening-flame-compare { align-items: flex-end; display: flex; gap: 24px; justify-content: center; margin: 28px auto 18px; }
html.ke-rebrand-mode .ke-opening-flame-compare > div { align-items: center; display: flex; flex-direction: column; }
html.ke-rebrand-mode .ke-opening-flame-compare span { color: #d9b66d; font-size: 8px; font-weight: 900; letter-spacing: .8px; margin-bottom: 6px; text-transform: uppercase; }
html.ke-rebrand-mode .ke-opening-flame-compare i { display: block; filter: drop-shadow(0 0 15px rgba(236,187,61,.58)); height: 75px; width: 60px; }
html.ke-rebrand-mode .ke-opening-flame-compare > div:last-child i { filter: drop-shadow(0 0 30px rgba(236,187,61,.82)); height: 124px; width: 92px; }
html.ke-rebrand-mode .ke-opening-flame-compare svg { height: 100%; width: 100%; }
html.ke-rebrand-mode .ke-opening-plan-main > p { color: rgba(255,250,242,.72) !important; font: 500 20px/1.4 'Cormorant Garamond',serif; margin: 0 auto 22px; max-width: 620px; }

/* Staging-only offer preview. */
html.ke-rebrand-mode .ke-opening-screen.is-offer { align-items: flex-start; }
html.ke-rebrand-mode .ke-opening-offer-main { max-width: 860px; padding: 45px 0 10px; }
html.ke-rebrand-mode .ke-opening-offer-flame { filter: drop-shadow(0 0 32px rgba(239,193,67,.68)); height: 130px; margin: 0 auto 8px; width: 100px; }
html.ke-rebrand-mode .ke-opening-offer-flame svg { height: 100%; width: 100%; }
html.ke-rebrand-mode .ke-opening-offer-flame.is-surging { animation: keOpeningOfferSurge .65s cubic-bezier(.18,.86,.22,1); }
@keyframes keOpeningOfferSurge { 45% { filter: drop-shadow(0 0 65px rgba(249,211,100,.95)); transform: scale(1.35); } }
html.ke-rebrand-mode .ke-opening-offer-main h1 { font-size: clamp(39px,6.5vw,66px); line-height: 1; margin: 0 0 8px; }
html.ke-rebrand-mode .ke-opening-offer-lead { color: #e7ca84 !important; font: 500 20px 'Cormorant Garamond',serif; margin: 0 0 18px; }
html.ke-rebrand-mode .ke-opening-billing-toggle { background: rgba(255,255,255,.06); border: 1px solid rgba(222,185,102,.32); border-radius: 999px; display: grid; gap: 4px; grid-template-columns: repeat(2,1fr); margin: 0 auto 18px; max-width: 330px; padding: 4px; }
html.ke-rebrand-mode .ke-opening-billing-toggle button { background: transparent; border: 0; border-radius: 999px; color: rgba(255,250,242,.58); cursor: pointer; font: 800 10px 'DM Sans',sans-serif; min-height: 42px; }
html.ke-rebrand-mode .ke-opening-billing-toggle button[aria-pressed="true"] { background: #e2bf72; color: #11252e; }
html.ke-rebrand-mode .ke-opening-tier-grid { display: grid; gap: 14px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0 auto 16px; max-width: 780px; }
html.ke-rebrand-mode .ke-opening-tier-grid > button { background: rgba(255,255,255,.045); border: 1px solid rgba(220,184,100,.4); border-radius: 22px; color: #fffaf2; cursor: pointer; min-height: 190px; padding: 21px; position: relative; text-align: left; }
html.ke-rebrand-mode .ke-opening-tier-grid > button[aria-pressed="true"] { background: linear-gradient(145deg,rgba(109,41,66,.86),rgba(53,20,35,.92)); border: 2px solid #e8c97f; box-shadow: 0 0 0 5px rgba(229,194,111,.09),0 18px 38px rgba(0,0,0,.3); }
html.ke-rebrand-mode .ke-opening-tier-grid strong,
html.ke-rebrand-mode .ke-opening-tier-grid b,
html.ke-rebrand-mode .ke-opening-tier-grid small { display: block; }
html.ke-rebrand-mode .ke-opening-tier-badge { color: #e8c87b; display: block; font-size: 8px; font-weight: 900; letter-spacing: .8px; min-height: 18px; }
html.ke-rebrand-mode .ke-opening-tier-grid strong { font: 600 29px 'Playfair Display',serif; margin: 6px 0 12px; }
html.ke-rebrand-mode .ke-opening-tier-grid b { color: #f0d18a; font-size: 17px; }
html.ke-rebrand-mode .ke-opening-tier-grid small { color: rgba(255,250,242,.62); font-size: 10px; line-height: 1.45; margin-top: 12px; }
html.ke-rebrand-mode .ke-opening-offer-detail { color: rgba(255,250,242,.65) !important; font: 500 17px/1.4 'Cormorant Garamond',serif; margin: 0 auto 8px; max-width: 680px; }
html.ke-rebrand-mode .ke-opening-preview-note { color: rgba(255,250,242,.52) !important; font-size: 9px; line-height: 1.45; margin: 0 auto 16px; max-width: 640px; }
html.ke-rebrand-mode .ke-opening-preview-note strong { color: #bde0d9; }

/* Screens 21–22: automatic Day One celebration. */
html.ke-rebrand-mode .ke-opening-screen.is-day-one { background: radial-gradient(circle at 50% 45%,#704029 0,#4c2330 20%,#102832 57%,#071820 100%); overflow: hidden; }
html.ke-rebrand-mode .ke-opening-day-one-main { align-items: center; display: flex; flex-direction: column; position: relative; text-align: center; z-index: 2; }
html.ke-rebrand-mode .ke-opening-day-rays { animation: keOpeningDayRays 18s linear infinite; background: repeating-conic-gradient(from 0deg,rgba(244,211,124,.13) 0 5deg,transparent 5deg 18deg); border-radius: 50%; height: min(105vw,820px); left: 50%; position: absolute; top: 44%; transform: translate(-50%,-50%); width: min(105vw,820px); z-index: -1; }
@keyframes keOpeningDayRays { to { transform: translate(-50%,-50%) rotate(360deg); } }
html.ke-rebrand-mode .ke-opening-day-flame { filter: drop-shadow(0 0 70px rgba(255,209,90,.94)); height: min(45vh,390px); margin-bottom: 16px; position: relative; width: min(34vh,300px); }
html.ke-rebrand-mode .ke-opening-day-flame svg { animation: keOpeningDayFlame 1.35s ease-in-out infinite; height: 100%; width: 100%; }
@keyframes keOpeningDayFlame { 0%,100% { transform:scale(.95) rotate(-.5deg); } 50% { transform:scale(1.05) rotate(.7deg); } }
html.ke-rebrand-mode .ke-opening-day-flame i { animation: keOpeningEmberRise 1.7s ease-out infinite; background: #ffd66d; border-radius: 50%; bottom: 18%; box-shadow: 0 0 9px #ffbd40; height: 5px; left: 46%; position: absolute; width: 5px; }
html.ke-rebrand-mode .ke-opening-day-flame i:nth-of-type(2) { animation-delay:.3s; left:28%; }
html.ke-rebrand-mode .ke-opening-day-flame i:nth-of-type(3) { animation-delay:.6s; left:64%; }
html.ke-rebrand-mode .ke-opening-day-flame i:nth-of-type(4) { animation-delay:.9s; left:37%; }
html.ke-rebrand-mode .ke-opening-day-flame i:nth-of-type(5) { animation-delay:1.2s; left:58%; }
@keyframes keOpeningEmberRise { to { opacity:0; transform:translateY(-230px) translateX(25px) scale(.3); } }
html.ke-rebrand-mode .ke-opening-day-one-main h1 { font-size: clamp(45px,8vw,82px); line-height: 1; margin: 0; }
html.ke-rebrand-mode .ke-opening-day-one-main > p { color: rgba(255,250,242,.7) !important; font-size: 10px; margin: 18px 0 0; min-height: 18px; }
html.ke-rebrand-mode .ke-opening-day-one-main .ke-opening-primary { margin-top: 16px; }

/* Screen 23: rises over Home. */
html.ke-rebrand-mode .ke-opening-home-prompt {
  display: none;
  inset: 0;
  overflow: hidden;
  position: fixed;
  z-index: 100001;
}

html.ke-rebrand-mode .ke-opening-home-prompt.show { display: block; }
html.ke-rebrand-mode .ke-opening-home-backdrop { background: rgba(4,14,19,.66); inset: 0; position: absolute; }
html.ke-rebrand-mode .ke-opening-home-backdrop > span { bottom: 12%; filter: blur(2px) drop-shadow(0 0 70px rgba(239,191,65,.7)); height: 300px; left: 50%; opacity: .55; position: absolute; transform: translateX(-50%); width: 230px; }
html.ke-rebrand-mode .ke-opening-home-backdrop svg { height: 100%; width: 100%; }
html.ke-rebrand-mode .ke-opening-home-sheet { animation: keOpeningSheetRise .65s cubic-bezier(.18,.78,.2,1) both; background: linear-gradient(155deg,#fffdf8,#f3e5cc); border: 1px solid #e0ba65; border-radius: 30px 30px 0 0; bottom: 0; box-shadow: 0 -20px 70px rgba(0,0,0,.38); color: #142830; left: 50%; max-height: min(88vh,720px); max-height: min(88dvh,720px); max-width: 760px; overflow-y: auto; overscroll-behavior: contain; padding: 30px max(22px,env(safe-area-inset-right)) max(30px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left)); position: absolute; text-align: center; transform: translateX(-50%); width: min(100%,760px); }
@keyframes keOpeningSheetRise { from { opacity:0; transform:translate(-50%,100%); } to { opacity:1; transform:translate(-50%,0); } }
html.ke-rebrand-mode .ke-opening-home-sheet > span { color: #7b3a50; font-size: 8px; font-weight: 900; letter-spacing: 1px; }
html.ke-rebrand-mode .ke-opening-home-sheet h2 { color: #142830; font: 600 clamp(34px,6vw,54px)/1.05 'Playfair Display',serif; margin: 9px 0 3px; }
html.ke-rebrand-mode .ke-opening-home-sheet > p { color: #7b3a50; font: 600 25px 'Cormorant Garamond',serif; margin: 0 0 22px; }
html.ke-rebrand-mode .ke-opening-home-sheet > div { display: grid; gap: 10px; grid-template-columns: repeat(2,minmax(0,1fr)); }
html.ke-rebrand-mode .ke-opening-home-sheet button { background: #142830; border: 1px solid #c89f4d; border-radius: 999px; color: #fffaf2; cursor: pointer; font: 800 11px 'DM Sans',sans-serif; min-height: 50px; padding: 0 16px; }
html.ke-rebrand-mode .ke-opening-home-sheet button:last-child { background: transparent; border-color: rgba(20,40,48,.25); color: #6d2942; }

/* Small, capability-gated staging replay control. It lives in #scr-dashboard,
   so it disappears with the Dashboard and stays tucked above the bottom rail. */
html.ke-rebrand-mode #ke-opening-flow-replay[hidden] { display: none !important; }
html.ke-rebrand-mode #ke-opening-flow-replay {
  align-items: center;
  backdrop-filter: blur(12px);
  background: rgba(8,25,32,.88);
  border: 1px solid rgba(218,183,104,.64);
  border-radius: 999px;
  bottom: calc(88px + env(safe-area-inset-bottom));
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
  color: #ecd18b;
  cursor: pointer;
  display: inline-flex;
  font: 800 19px/1 'DM Sans',sans-serif !important;
  height: 38px;
  justify-content: center;
  min-height: 38px;
  min-width: 38px;
  padding: 0;
  position: fixed;
  right: max(12px,env(safe-area-inset-right));
  text-transform: uppercase;
  width: 38px;
  z-index: 181;
}

html.ke-rebrand-mode #ke-opening-flow-replay:disabled { cursor: progress; opacity: .62; }

/* Capability-gated tester reset rendered by every opening screen. */
html.ke-rebrand-mode .ke-opening-screen-restart,
html.ke-rebrand-mode .ke-opening-screen-skip-intro {
  align-items: center;
  backdrop-filter: blur(13px);
  background: rgba(8,25,32,.9);
  border: 1px solid rgba(218,183,104,.68);
  border-radius: 999px;
  bottom: max(14px,env(safe-area-inset-bottom));
  box-shadow: 0 8px 24px rgba(0,0,0,.28);
  color: #ecd18b;
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  min-height: 38px;
  min-width: 38px;
  padding: 0;
  position: fixed;
  width: 38px;
  z-index: 30;
}

html.ke-rebrand-mode .ke-opening-screen-restart { right: max(12px,env(safe-area-inset-right)); }
html.ke-rebrand-mode .ke-opening-screen-skip-intro { left: max(12px,env(safe-area-inset-left)); }
html.ke-rebrand-mode .ke-opening-screen-restart > span { font-size: 17px; }
html.ke-rebrand-mode .ke-opening-screen-skip-intro > span { font-size: 18px; transform: translateX(1px); }
html.ke-rebrand-mode .ke-opening-screen-restart:disabled,
html.ke-rebrand-mode .ke-opening-screen-skip-intro:disabled { cursor: progress; opacity: .58; }
html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-screen-restart,
html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-screen-skip-intro { bottom: max(46px,calc(env(safe-area-inset-bottom) + 30px)); }
html.ke-rebrand-mode .ke-opening-screen-restart-status {
  bottom: max(58px,calc(env(safe-area-inset-bottom) + 44px));
  color: #ffd2d5;
  font: 700 10px/1.35 'DM Sans',sans-serif;
  max-width: min(250px,70vw);
  position: fixed;
  right: max(14px,env(safe-area-inset-right));
  text-align: right;
  z-index: 30;
}

html.ke-rebrand-mode .ke-opening-screen-skip-status {
  bottom: max(58px,calc(env(safe-area-inset-bottom) + 44px));
  color: #ffd2d5;
  font: 700 10px/1.35 'DM Sans',sans-serif;
  left: max(14px,env(safe-area-inset-left));
  max-width: min(250px,70vw);
  position: fixed;
  text-align: left;
  z-index: 30;
}

html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-screen-restart-status { bottom: max(90px,calc(env(safe-area-inset-bottom) + 74px)); }
html.ke-rebrand-mode .ke-opening-screen.is-story .ke-opening-screen-skip-status { bottom: max(90px,calc(env(safe-area-inset-bottom) + 74px)); }

@media (max-width: 760px) {
  html.ke-rebrand-mode .ke-opening-options.is-compact { grid-template-columns: repeat(2,minmax(0,1fr)); }
  html.ke-rebrand-mode .ke-opening-checkin-options { grid-template-columns: 1fr; }
  html.ke-rebrand-mode .ke-opening-checkin-options button { min-height: 120px; }
  html.ke-rebrand-mode .ke-opening-tier-grid { grid-template-columns: 1fr; }
  html.ke-rebrand-mode .ke-opening-tier-grid > button { min-height: 160px; }
}

@media (max-width: 560px) {
  html.ke-rebrand-mode .ke-opening-screen { padding-inline: max(17px,env(safe-area-inset-left)); }
  html.ke-rebrand-mode .ke-opening-question-header { grid-template-columns: 46px 1fr 46px; min-height: 142px; padding-inline: 12px; }
  html.ke-rebrand-mode .ke-opening-question-progress { height: 118px; }
  html.ke-rebrand-mode .ke-opening-progress-flame { max-height: 92px; }
  html.ke-rebrand-mode .ke-opening-question-main,
  html.ke-rebrand-mode .ke-opening-reminders-main { padding: 18px 17px 22px; }
  html.ke-rebrand-mode .ke-opening-question-main h1,
  html.ke-rebrand-mode .ke-opening-reminders-main h1 { font-size: 36px; }
  html.ke-rebrand-mode .ke-opening-options { grid-template-columns: 1fr; margin-top: 24px; }
  html.ke-rebrand-mode .ke-opening-options.is-compact { grid-template-columns: repeat(2,minmax(0,1fr)); }
  html.ke-rebrand-mode .ke-opening-options button { min-height: 62px; padding: 12px; }
  html.ke-rebrand-mode .ke-opening-options button strong { font-size: 13px; }
  html.ke-rebrand-mode .ke-opening-time-grid { grid-template-columns: 1fr; margin-top: 28px; }
  html.ke-rebrand-mode .ke-opening-time-grid label { min-height: 88px; }
  html.ke-rebrand-mode .ke-opening-recap-main h1 { font-size: 38px; }
  html.ke-rebrand-mode .ke-opening-plan-main { padding-top: 64px; }
  html.ke-rebrand-mode .ke-opening-plan-main li { grid-template-columns: 52px 1fr; }
  html.ke-rebrand-mode .ke-opening-plan-main li strong { font-size: 15px; }
  html.ke-rebrand-mode .ke-opening-home-sheet > div { grid-template-columns: 1fr; }
  html.ke-rebrand-mode #ke-opening-flow-replay { bottom: calc(82px + env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion: reduce) {
  html.ke-rebrand-mode .ke-opening-story-flame-media { display: none !important; }
  html.ke-rebrand-mode .ke-opening-story-flame-fallback { display: block !important; }
  html.ke-rebrand-mode .ke-opening-ignition-copy p { animation-delay: 0s !important; }
  html.ke-rebrand-mode .ke-opening-ember-core,
  html.ke-rebrand-mode .ke-opening-story-progress i,
  html.ke-rebrand-mode .ke-opening-day-rays,
  html.ke-rebrand-mode .ke-opening-day-flame svg,
  html.ke-rebrand-mode .ke-opening-day-flame i,
  html.ke-rebrand-mode .ke-opening-checkin-main.has-selection .ke-opening-checkin-flame,
  html.ke-rebrand-mode .ke-opening-recap-main li,
  html.ke-rebrand-mode .ke-opening-recap-main > p,
  html.ke-rebrand-mode .ke-opening-recap-main .ke-opening-primary,
  html.ke-rebrand-mode .ke-opening-home-sheet,
  html.ke-rebrand-mode .ke-opening-screen.is-ignition .ke-opening-screen-restart { animation: none !important; }
  html.ke-rebrand-mode .ke-opening-screen.is-ignition .ke-opening-screen-restart { opacity: 1; }
  html.ke-rebrand-mode .ke-opening-ignition-release::before,
  html.ke-rebrand-mode .ke-opening-ignition-release img,
  html.ke-rebrand-mode .ke-opening-flow.is-igniting .ke-opening-ember-core,
  html.ke-rebrand-mode .ke-opening-flow.is-igniting .ke-opening-ember-ring { animation-duration: .01ms !important; }
  html.ke-rebrand-mode .ke-opening-ignition-release,
  html.ke-rebrand-mode .ke-opening-story-flame,
  html.ke-rebrand-mode .ke-opening-story-aura,
  html.ke-rebrand-mode .ke-opening-meet-aura,
  html.ke-rebrand-mode .ke-opening-meet-flame,
  html.ke-rebrand-mode .ke-opening-progress-flame { transition-duration: .01ms !important; }

  html.ke-rebrand-mode .ke-opening-cinematic-brand,
  html.ke-rebrand-mode .ke-opening-cinematic-brand::before,
  html.ke-rebrand-mode .ke-opening-cinematic-brand::after,
  html.ke-rebrand-mode .ke-opening-cinematic-flare,
  html.ke-rebrand-mode .ke-opening-cinematic-word,
  html.ke-rebrand-mode .ke-opening-cinematic-rule {
    animation: none !important;
    filter: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  html.ke-rebrand-mode .ke-opening-cinematic-brand::before,
  html.ke-rebrand-mode .ke-opening-cinematic-brand::after,
  html.ke-rebrand-mode .ke-opening-cinematic-flare { display: none !important; }
}

/* 2026-08-31 unified Flame geometry --------------------------------------
   A mathematically regular point-top hexagon has a width/height ratio of
   sqrt(3)/2. Keeping that ratio everywhere makes all six sides equal. */
html.ke-rebrand-mode #ke-opening-flow {
  --ke-opening-hex-ratio: .8660254;
  --ke-opening-shared-hex-width: min(300px,calc(100vw - 40px));
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-hex {
  aspect-ratio: var(--ke-opening-hex-ratio) !important;
  width: var(--ke-opening-shared-hex-width) !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-hex,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-meet-hex,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-question-hex,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-reminders-hex,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-notification-hex,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-checkin-hex,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-hex {
  max-width: none !important;
  width: var(--ke-opening-shared-hex-width) !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] {
  --ke-opening-core-size: var(--ke-opening-shared-hex-width);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-bloom-hex {
  aspect-ratio: var(--ke-opening-hex-ratio) !important;
  width: var(--ke-opening-core-size) !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="column"] {
  height: min(700px,calc(100dvh - 132px));
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  scrollbar-color: rgba(215,181,109,.62) rgba(8,23,30,.28);
  scrollbar-width: thin;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="column"]::after {
  content: "";
  display: block;
  height: var(--ke-opening-content-height);
  pointer-events: none;
  width: 1px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="column"] .ke-opening-bloom-answer,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="column"] .ke-opening-reminder-circle {
  padding: clamp(14px,4vw,20px) !important;
  width: var(--ke-opening-choice-size) !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="column"] .ke-opening-bloom-answer > strong,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="column"] .ke-opening-reminder-circle label > strong {
  font-size: clamp(15px,4.2vw,19px) !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-progress-flame .ke-opening-name-flame-picture,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-progress-flame .ke-opening-name-flame-media,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-meet-flame .ke-opening-name-flame-picture,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-meet-flame .ke-opening-name-flame-media,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-offer-flame .ke-opening-name-flame-picture,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-offer-flame .ke-opening-name-flame-media {
  display: block;
  height: 100%;
  object-fit: contain;
  width: 100%;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-meet-hex h1 {
  font-size: clamp(34px,8.5vw,48px) !important;
}

html.ke-rebrand-mode #ke-opening-flow.show .ke-opening-meet-hex :is(h1,.ke-opening-meet-flame,.ke-opening-meet-name) {
  animation: keOpeningMeetFloatIn .78s cubic-bezier(.16,1,.3,1) both;
}

html.ke-rebrand-mode #ke-opening-flow.show .ke-opening-meet-hex .ke-opening-meet-flame { animation-delay: .18s; }
html.ke-rebrand-mode #ke-opening-flow.show .ke-opening-meet-hex .ke-opening-meet-name { animation-delay: .34s; }

@keyframes keOpeningMeetFloatIn {
  from { filter: blur(5px); opacity: 0; transform: translateY(22px) scale(.96); }
  to { filter: blur(0); opacity: 1; transform: translateY(0) scale(1); }
}

/* First-entry handoff: hex heading, full-width circle, internally scrolling
   paper. Long writing never stretches the circle. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-reflection-main {
  max-width: 760px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reflection-unit {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reflection-hex {
  flex: 0 0 auto;
  margin: 0 auto;
  width: var(--ke-opening-shared-hex-width) !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reflection-hex .ke-opening-bloom-hex-inner {
  padding: 18% 13% !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reflection-hex span {
  color: #f0d38d;
  font: 900 9px/1.2 'DM Sans',sans-serif;
  letter-spacing: .13em;
  margin-bottom: 10px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reflection-hex :is(h1,h2) {
  color: #fffaf2 !important;
  font: 600 clamp(28px,7vw,42px)/1.02 'Playfair Display',serif;
  margin: 0;
  text-align: center;
  text-wrap: balance;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reflection-circle {
  align-items: center;
  aspect-ratio: 1;
  background: conic-gradient(from 215deg,#82591f,#d5aa50 18%,#fff0b4 31%,#b7802c 49%,#f0d488 69%,#916323 84%,#d7b56d);
  border: 0;
  border-radius: 50% !important;
  box-shadow: 0 22px 58px rgba(0,0,0,.38),0 0 35px rgba(215,181,109,.2);
  display: flex;
  margin: 0 auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
  padding: 5px !important;
  width: min(100%,720px) !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reflection-paper {
  background: #fffaf0;
  border-radius: 50%;
  box-sizing: border-box;
  color: #172830;
  height: 100%;
  overflow: hidden auto;
  overscroll-behavior: contain;
  padding: clamp(66px,12vw,112px) clamp(48px,11vw,104px);
  scrollbar-color: rgba(104,45,67,.5) transparent;
  width: 100%;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reflection-paper :is(p,strong,small) {
  color: #172830 !important;
  font: 500 clamp(18px,3vw,23px)/1.55 'Cormorant Garamond',serif;
  text-align: left;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-writing-flame {
  float: left;
  height: 62px;
  margin: 0 14px 7px 0;
  width: 48px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-writing-flame :is(picture,img) {
  height: 100%;
  object-fit: contain;
  width: 100%;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-writing-flame.is-keeper {
  animation: keOpeningWritingTrail 2.2s ease-in-out infinite;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-writing-flame.is-karamo {
  height: 74px;
  width: 58px;
}

@keyframes keOpeningWritingTrail {
  0%,100% { filter: drop-shadow(0 0 7px rgba(215,181,109,.35)); transform: translateY(2px) rotate(-2deg); }
  50% { filter: drop-shadow(0 0 15px rgba(215,181,109,.65)); transform: translateY(-3px) rotate(2deg); }
}

@media (max-width: 560px) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-reflection-circle {
    width: calc(100vw - 26px) !important;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-reflection-paper {
    padding: clamp(60px,15vw,76px) clamp(46px,14vw,64px) clamp(68px,17vw,86px);
    scroll-padding-block: clamp(60px,15vw,76px);
  }
}

@media (prefers-reduced-motion: reduce) {
  html.ke-rebrand-mode #ke-opening-flow.show .ke-opening-meet-hex :is(h1,.ke-opening-meet-flame,.ke-opening-meet-name),
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-writing-flame { animation: none !important; }
}

/* Opening Bloom language: one canonical gold hex holds each prompt or native
   input, then the available answers grow downward as connected jewel circles. */
html.ke-rebrand-mode .ke-opening-flow {
  --ke-opening-garnet-deep: #3a0610;
  --ke-opening-garnet: #740e1c;
  --ke-opening-garnet-light: #a93443;
  --ke-opening-peridot-deep: #163e09;
  --ke-opening-peridot: #297b0d;
  --ke-opening-peridot-light: #6ca746;
  --ke-opening-amethyst-deep: #22073f;
  --ke-opening-amethyst: #460f75;
  --ke-opening-amethyst-light: #7650a5;
  --ke-opening-azure-deep: #073344;
  --ke-opening-azure: #135f8a;
  --ke-opening-azure-light: #5791a5;
}

html.ke-rebrand-mode .ke-opening-flow .ke-opening-screen {
  box-sizing: border-box;
  height: 100vh;
  height: 100dvh;
  min-height: 0;
}

html.ke-rebrand-mode .ke-opening-bloom-stage {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  max-width: 940px;
  position: relative;
  width: 100%;
}

html.ke-rebrand-mode .ke-opening-screen [tabindex="-1"]:focus { outline: 0; }

html.ke-rebrand-mode .ke-opening-bloom-hex {
  align-items: center;
  animation: keOpeningHexBloom .72s cubic-bezier(.16,1,.3,1) both;
  aspect-ratio: 1 / 1;
  display: flex;
  filter: drop-shadow(0 5px 0 rgba(99,64,18,.78)) drop-shadow(0 18px 32px rgba(0,0,0,.46)) drop-shadow(0 0 28px rgba(215,181,109,.38));
  isolation: isolate;
  justify-content: center;
  max-width: min(calc(100vw - 28px),calc(100dvh - 100px));
  position: relative;
  width: clamp(310px,58vw,500px);
  z-index: 2;
}

html.ke-rebrand-mode .ke-opening-bloom-hex::before,
html.ke-rebrand-mode .ke-opening-bloom-hex-inner::before {
  clip-path: polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute;
}

html.ke-rebrand-mode .ke-opening-bloom-hex::before {
  background: conic-gradient(from 30deg,#ffe9a0 0 16.666%,#c28c35 16.666% 33.333%,#79501a 33.333% 50%,#9f7127 50% 66.666%,#f0ce78 66.666% 83.333%,#fff0ad 83.333% 100%);
  z-index: -2;
}

html.ke-rebrand-mode .ke-opening-bloom-hex-inner {
  align-items: center;
  display: flex;
  flex-direction: column;
  height: calc(100% - 8px);
  justify-content: center;
  padding: clamp(42px,8%,64px) clamp(52px,11%,82px);
  position: relative;
  text-align: center;
  width: calc(100% - 8px);
  z-index: 1;
}

html.ke-rebrand-mode .ke-opening-bloom-hex-inner::before {
  background:
    radial-gradient(circle at 36% 23%,rgba(255,255,255,.1),transparent 27%),
    radial-gradient(circle at 50% 47%,rgba(215,181,109,.16),transparent 43%),
    linear-gradient(155deg,#29424d 0%,#10242d 58%,#08161b 100%);
  z-index: -1;
}

@keyframes keOpeningHexBloom {
  from { opacity: 0; transform: translateY(-26px) scale(.72); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* The existing Kē Sparks stay invisible until the Keeper holds the unframed
   ember, then converge from eight directions and release back into the wash. */
html.ke-rebrand-mode .ke-opening-ignition-sparks {
  inset: 0;
  overflow: visible;
  pointer-events: none;
  position: absolute !important;
  z-index: 1 !important;
}

html.ke-rebrand-mode .ke-opening-ignition-spark {
  height: 28px;
  left: calc(50% - 14px);
  opacity: 0;
  pointer-events: none;
  position: absolute !important;
  top: calc(50% - 14px);
  transform-origin: center;
  width: 28px;
}

html.ke-rebrand-mode .ke-opening-ignition-spark::before {
  background: linear-gradient(90deg,transparent,rgba(255,108,36,.24),rgba(255,223,117,.86));
  border-radius: 999px;
  content: '';
  height: 3px;
  position: absolute;
  right: 17px;
  top: 13px;
  width: 42px;
}

html.ke-rebrand-mode .ke-opening-ignition-spark .ke-spark-comet-mark {
  --ke-spark-comet-height: 28px;
  --ke-spark-comet-width: 28px;
  display: block;
  position: relative;
  z-index: 2;
}

html.ke-rebrand-mode .ke-opening-flow.is-holding-ember .ke-opening-ignition-spark {
  animation: keOpeningSparkConverge 1.18s var(--ke-opening-spark-delay) cubic-bezier(.24,.02,.14,1) infinite;
}

html.ke-rebrand-mode .ke-opening-flow.is-igniting .ke-opening-ignition-spark {
  animation: keOpeningSparkRelease .72s calc(var(--ke-opening-spark-index) * 22ms) cubic-bezier(.12,.7,.18,1) both;
}

@keyframes keOpeningSparkConverge {
  0% { filter: brightness(.78); opacity: 0; transform: translate(var(--ke-opening-spark-x),var(--ke-opening-spark-y)) rotate(var(--ke-opening-spark-rotation)) scale(.4); }
  12% { opacity: .9; }
  72% { filter: brightness(1.12); opacity: 1; }
  96% { filter: brightness(1.45); opacity: 1; transform: translate(0,0) rotate(var(--ke-opening-spark-rotation)) scale(.96); }
  100% { opacity: 0; transform: translate(0,0) rotate(var(--ke-opening-spark-rotation)) scale(.12); }
}

@keyframes keOpeningSparkRelease {
  0% { filter: brightness(1.8); opacity: 1; transform: translate(0,0) rotate(var(--ke-opening-spark-rotation)) scale(.32); }
  62% { opacity: .95; }
  100% { filter: brightness(1.12); opacity: 0; transform: translate(var(--ke-opening-spark-x),var(--ke-opening-spark-y)) rotate(var(--ke-opening-spark-rotation)) scale(.72); }
}

html.ke-rebrand-mode .ke-opening-ignition-field .ke-opening-ember { z-index: 4; }

/* Form controls stay native and focusable; only their visual chassis is clipped. */
html.ke-rebrand-mode .ke-opening-name-main { max-width: 680px; }
html.ke-rebrand-mode .ke-opening-name-hex { width: clamp(330px,66vw,560px); }
html.ke-rebrand-mode .ke-opening-name-hex .ke-opening-bloom-hex-inner { padding: 48px 72px; }
html.ke-rebrand-mode .ke-opening-name-hex .ke-opening-name-flame { height: min(var(--ke-name-flame-height),118px); margin-bottom: 12px; width: 78px; }
html.ke-rebrand-mode .ke-opening-name-main .ke-opening-name-hex h1 { font-size: clamp(28px,4.4vw,43px); line-height: 1.04; margin: 0 auto 18px; }
html.ke-rebrand-mode .ke-opening-name-main > .ke-opening-primary,
html.ke-rebrand-mode .ke-opening-reminders-main > .ke-opening-primary { margin-top: 24px; }

html.ke-rebrand-mode .ke-opening-question-main,
html.ke-rebrand-mode .ke-opening-reminders-main { max-width: 980px; }
html.ke-rebrand-mode .ke-opening-question-hex { width: clamp(320px,54vw,500px); }
html.ke-rebrand-mode .ke-opening-question-hex .ke-opening-bloom-hex-inner { padding: 54px 68px; }
html.ke-rebrand-mode .ke-opening-question-main .ke-opening-question-hex h1 { font-size: clamp(29px,4.4vw,44px); line-height: 1.02; margin: 0; max-width: 410px; }
html.ke-rebrand-mode .ke-opening-question-main .ke-opening-question-hex p { color: rgba(255,250,242,.68) !important; font: 600 16px 'Cormorant Garamond',serif; margin: 13px 0 0; }

html.ke-rebrand-mode .ke-opening-bloom-answers,
html.ke-rebrand-mode .ke-opening-options.ke-opening-bloom-answers,
html.ke-rebrand-mode .ke-opening-checkin-options.ke-opening-bloom-answers {
  background: none;
  display: grid;
  gap: 24px 22px;
  grid-template-columns: repeat(2,minmax(0,176px));
  justify-content: center;
  margin: 0 auto;
  max-width: 430px;
  padding: 34px 0 4px;
  position: relative;
  width: 100%;
  z-index: 1;
}

html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer,
html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer,
html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer,
html.ke-rebrand-mode .ke-opening-meet-bloom {
  align-items: center;
  animation: keOpeningAnswerBloomDown .68s calc(120ms + var(--ke-opening-answer-index) * 72ms) cubic-bezier(.16,1,.3,1) both;
  aspect-ratio: 1 / 1;
  border: 2px solid rgba(240,213,151,.82);
  border-radius: 50%;
  box-shadow: inset 0 1px rgba(255,255,255,.2),0 14px 28px rgba(0,0,0,.34),0 0 0 5px rgba(215,181,109,.06);
  color: #fffaf2;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 7px;
  justify-content: center;
  min-height: 0;
  padding: 24px;
  position: relative;
  text-align: center;
  transition: box-shadow .24s ease,filter .24s ease,transform .24s ease;
  width: 176px;
  z-index: 2;
}

html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer::before {
  background:
    radial-gradient(circle at 31% 20%,rgba(255,255,255,.24),transparent 27%),
    radial-gradient(circle at 50% 44%,var(--ke-opening-tone-light),var(--ke-opening-tone) 50%,var(--ke-opening-tone-deep) 100%);
  border-radius: 50%;
  content: '';
  inset: 5px;
  pointer-events: none;
  position: absolute;
  z-index: -1;
}

html.ke-rebrand-mode .ke-opening-bloom-answer.is-garnet,
html.ke-rebrand-mode .ke-opening-bloom-answer.is-blazing { --ke-opening-tone-deep: var(--ke-opening-garnet-deep); --ke-opening-tone: var(--ke-opening-garnet); --ke-opening-tone-light: var(--ke-opening-garnet-light); }
html.ke-rebrand-mode .ke-opening-bloom-answer.is-peridot,
html.ke-rebrand-mode .ke-opening-bloom-answer.is-burning_bright { --ke-opening-tone-deep: var(--ke-opening-peridot-deep); --ke-opening-tone: var(--ke-opening-peridot); --ke-opening-tone-light: var(--ke-opening-peridot-light); }
html.ke-rebrand-mode .ke-opening-bloom-answer.is-amethyst,
html.ke-rebrand-mode .ke-opening-bloom-answer.is-burning_low { --ke-opening-tone-deep: var(--ke-opening-amethyst-deep); --ke-opening-tone: var(--ke-opening-amethyst); --ke-opening-tone-light: var(--ke-opening-amethyst-light); }
html.ke-rebrand-mode .ke-opening-bloom-answer.is-azure,
html.ke-rebrand-mode .ke-opening-bloom-answer.is-steady_glow { --ke-opening-tone-deep: var(--ke-opening-azure-deep); --ke-opening-tone: var(--ke-opening-azure); --ke-opening-tone-light: var(--ke-opening-azure-light); }
html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer > strong { font: 600 clamp(13px,1.8vw,17px)/1.23 'Playfair Display',serif; }
html.ke-rebrand-mode .ke-opening-bloom-answer.is-selected { box-shadow: 0 0 0 5px rgba(241,214,144,.22),0 0 34px rgba(241,214,144,.42),0 18px 36px rgba(0,0,0,.38); filter: brightness(1.12); transform: translateY(-4px) scale(1.035); }
html.ke-rebrand-mode .ke-opening-bloom-answer:disabled { cursor: progress; opacity: .72; }

html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer:last-child:nth-child(odd) { grid-column: 1 / -1; justify-self: center; }

@keyframes keOpeningAnswerBloomDown {
  from { opacity: 0; transform: translateY(-86px) scale(.2); }
  58% { opacity: 1; }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Reminder inputs and permission choices use the same prompt/input hex. */
html.ke-rebrand-mode .ke-opening-reminders-hex { width: clamp(350px,70vw,660px); }
html.ke-rebrand-mode .ke-opening-reminders-hex .ke-opening-bloom-hex-inner { padding: 58px 88px; }
html.ke-rebrand-mode .ke-opening-reminders-main .ke-opening-reminders-hex h1 { font-size: clamp(30px,4.4vw,46px); line-height: 1.02; margin: 0 auto 10px; }
html.ke-rebrand-mode .ke-opening-reminders-main .ke-opening-reminders-hex p { margin-bottom: 8px; }
html.ke-rebrand-mode .ke-opening-reminders-hex .ke-opening-time-grid { margin: 16px auto 10px; width: 100%; }
html.ke-rebrand-mode .ke-opening-reminders-hex .ke-opening-time-grid label { min-height: 88px; padding: 12px; }

html.ke-rebrand-mode .ke-opening-notification-main { max-width: 760px; }
html.ke-rebrand-mode .ke-opening-notification-hex { width: clamp(340px,66vw,580px); }
html.ke-rebrand-mode .ke-opening-notification-hex .ke-opening-bloom-hex-inner { padding: 48px 78px; }
html.ke-rebrand-mode .ke-opening-notification-hex .ke-opening-notification-flame { height: 88px; margin: 0 auto 9px; width: 68px; }
html.ke-rebrand-mode .ke-opening-notification-hex h1 { font-size: clamp(29px,4.5vw,44px); margin-bottom: 10px; }
html.ke-rebrand-mode .ke-opening-notification-hex p { font-size: 16px; margin-bottom: 10px; }
html.ke-rebrand-mode .ke-opening-notification-hex .ke-opening-notification-times { margin-bottom: 5px; min-height: 54px; width: 100%; }
html.ke-rebrand-mode .ke-opening-notification-answers .ke-opening-bloom-answer { border-radius: 50%; color: #fffaf2; font: 800 13px/1.2 'DM Sans',sans-serif; margin: 0; min-width: 0; padding: 24px; }

/* First Check-In is the same real hex and four equal emotion blooms. The tap
   saves automatically, so there is no off-screen dead end after selection. */
html.ke-rebrand-mode .ke-opening-screen.is-checkin { align-items: flex-start; }
html.ke-rebrand-mode .ke-opening-checkin-main { max-width: 760px; padding: 20px 0 max(34px,env(safe-area-inset-bottom)); }
html.ke-rebrand-mode .ke-opening-checkin-hex { width: clamp(330px,58vw,510px); }
html.ke-rebrand-mode .ke-opening-checkin-hex .ke-opening-bloom-hex-inner { padding: 48px 70px; }
html.ke-rebrand-mode .ke-opening-checkin-hex .ke-opening-checkin-flame { height: 105px; margin: 0 auto 8px; width: 82px; }
html.ke-rebrand-mode .ke-opening-checkin-main .ke-opening-checkin-hex h1 { font-size: clamp(31px,5vw,50px); margin: 0; }
html.ke-rebrand-mode .ke-opening-checkin-main .ke-opening-checkin-hex > span { margin-bottom: 8px; }
html.ke-rebrand-mode .ke-opening-checkin-options.ke-opening-bloom-answers { max-width: 450px; }
html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer { min-height: 0; padding: 24px; text-align: center; width: 184px; }
html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer strong { font-size: clamp(20px,2.5vw,27px); line-height: 1.05; }
html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer small { font-size: 10px; line-height: 1.35; margin-top: 3px; }
html.ke-rebrand-mode .ke-opening-checkin-confirmation[hidden],
html.ke-rebrand-mode [data-opening-checkin-next][hidden] { display: none !important; }
html.ke-rebrand-mode .ke-opening-checkin-confirmation small { color: #bde0d9; display: block; font-size: 10px; font-weight: 800; margin-top: 8px; }

@media (max-width: 560px) {
  html.ke-rebrand-mode .ke-opening-screen { padding-left: max(14px,env(safe-area-inset-left)); padding-right: max(14px,env(safe-area-inset-right)); }
  html.ke-rebrand-mode .ke-opening-question-main,
  html.ke-rebrand-mode .ke-opening-reminders-main { padding: 12px max(14px,env(safe-area-inset-right)) 22px max(14px,env(safe-area-inset-left)); }
  html.ke-rebrand-mode .ke-opening-bloom-hex { max-width: min(calc(100vw - 28px),calc(100dvh - 170px)); }
  html.ke-rebrand-mode .ke-opening-bloom-hex-inner,
  html.ke-rebrand-mode .ke-opening-name-hex .ke-opening-bloom-hex-inner,
  html.ke-rebrand-mode .ke-opening-question-hex .ke-opening-bloom-hex-inner,
  html.ke-rebrand-mode .ke-opening-reminders-hex .ke-opening-bloom-hex-inner,
  html.ke-rebrand-mode .ke-opening-notification-hex .ke-opening-bloom-hex-inner,
  html.ke-rebrand-mode .ke-opening-checkin-hex .ke-opening-bloom-hex-inner { padding: 38px 42px; }
  html.ke-rebrand-mode .ke-opening-name-hex .ke-opening-bloom-hex-inner { padding: 26px 38px; }
  html.ke-rebrand-mode .ke-opening-name-hex .ke-opening-name-flame { height: 76px; margin-bottom: 8px; width: 52px; }
  html.ke-rebrand-mode .ke-opening-name-main .ke-opening-name-hex h1 { font-size: clamp(22px,7.2vw,29px); margin-bottom: 10px; }
  html.ke-rebrand-mode .ke-opening-name-main label { font-size: 8px; margin-bottom: 5px; }
  html.ke-rebrand-mode .ke-opening-name-main input { font-size: 19px; height: 50px !important; min-height: 50px !important; }
  html.ke-rebrand-mode .ke-opening-name-main .ke-opening-error { margin-block: 4px 0; min-height: 15px; }
  html.ke-rebrand-mode .ke-opening-name-landing { font-size: 19px; min-height: 23px; }
  html.ke-rebrand-mode .ke-opening-name-main .ke-opening-name-hex h1,
  html.ke-rebrand-mode .ke-opening-question-main .ke-opening-question-hex h1,
  html.ke-rebrand-mode .ke-opening-reminders-main .ke-opening-reminders-hex h1,
  html.ke-rebrand-mode .ke-opening-notification-hex h1,
  html.ke-rebrand-mode .ke-opening-checkin-main .ke-opening-checkin-hex h1 { font-size: clamp(25px,8.2vw,34px); }
  html.ke-rebrand-mode .ke-opening-bloom-answers,
  html.ke-rebrand-mode .ke-opening-options.ke-opening-bloom-answers,
  html.ke-rebrand-mode .ke-opening-checkin-options.ke-opening-bloom-answers { gap: 18px 14px; grid-template-columns: repeat(2,minmax(0,145px)); max-width: 320px; padding-top: 40px; }
  html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer { min-height: 0; padding: 18px; width: 145px; }
  html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer > strong { font-size: 13px; }
  html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer strong { font-size: 20px; }
  html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer small { font-size: 9px; }
  html.ke-rebrand-mode .ke-opening-reminders-hex .ke-opening-bloom-hex-inner { padding: 28px 34px; }
  html.ke-rebrand-mode .ke-opening-reminders-main .ke-opening-reminders-hex h1 { font-size: clamp(22px,7vw,28px); margin-bottom: 5px; }
  html.ke-rebrand-mode .ke-opening-reminders-main .ke-opening-reminders-hex > p { font-size: 12px; line-height: 1.15; margin-bottom: 3px; }
  html.ke-rebrand-mode .ke-opening-reminders-hex .ke-opening-time-grid { gap: 7px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 6px auto 4px; }
  html.ke-rebrand-mode .ke-opening-reminders-hex .ke-opening-time-grid label { align-items: stretch; flex-direction: column; gap: 4px; min-height: 78px; padding: 7px; text-align: center; }
  html.ke-rebrand-mode .ke-opening-time-grid label strong { font-size: 14px; }
  html.ke-rebrand-mode .ke-opening-time-grid label small { font-size: 7px; margin-top: 1px; }
  html.ke-rebrand-mode .ke-opening-time-grid input { font-size: 12px; min-height: 44px; padding-inline: 3px; width: 100%; }
  html.ke-rebrand-mode .ke-opening-reminders-main .ke-opening-timezone { font-size: 7px; margin-bottom: 2px; }
  html.ke-rebrand-mode .ke-opening-reminders-hex .ke-opening-error { min-height: 14px; }
  html.ke-rebrand-mode .ke-opening-notification-hex .ke-opening-notification-flame { height: 64px; width: 50px; }
  html.ke-rebrand-mode .ke-opening-notification-hex p { font-size: 13px; line-height: 1.25; }
  html.ke-rebrand-mode .ke-opening-notification-hex .ke-opening-notification-times { min-height: 44px; }
  html.ke-rebrand-mode .ke-opening-notification-times strong { font-size: 15px; }
}

@media (max-width: 350px) {
  html.ke-rebrand-mode .ke-opening-bloom-answers,
  html.ke-rebrand-mode .ke-opening-options.ke-opening-bloom-answers,
  html.ke-rebrand-mode .ke-opening-checkin-options.ke-opening-bloom-answers { gap: 14px 10px; grid-template-columns: repeat(2,minmax(0,128px)); max-width: 276px; }
  html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer { padding: 14px; width: 128px; }
}

@media (prefers-reduced-motion: reduce) {
  html.ke-rebrand-mode .ke-opening-bloom-hex,
  html.ke-rebrand-mode .ke-opening-bloom-answer { animation: none !important; opacity: 1 !important; transform: none !important; }
  html.ke-rebrand-mode .ke-opening-ignition-spark { animation: none !important; opacity: 0 !important; }
}

/* Unified opening Bloom chassis. These rules intentionally mirror the dashboard
   jewel medallions: a moving gold rim, a solid jewel center, and no icon layer. */
html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer,
html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer,
html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer {
  --ke-opening-tone-deep: var(--ke-opening-azure-deep);
  --ke-opening-tone: var(--ke-opening-azure);
  --ke-opening-tone-light: var(--ke-opening-azure-light);
  background: conic-gradient(from 215deg,#82591f 0%,#d5aa50 18%,#fff0b4 31%,#b7802c 49%,#f0d488 69%,#916323 84%,#d7b56d 100%);
  border: 0;
  box-shadow:
    inset 0 1px rgba(255,255,255,.48),
    0 5px 0 rgba(67,45,15,.58),
    0 16px 32px rgba(0,0,0,.4),
    0 0 0 5px rgba(215,181,109,.05);
  isolation: isolate;
  overflow: hidden;
}

html.ke-rebrand-mode .ke-opening-bloom-answer.is-garnet,
html.ke-rebrand-mode .ke-opening-bloom-answer.is-blazing {
  --ke-opening-tone-deep: var(--ke-opening-garnet-deep);
  --ke-opening-tone: var(--ke-opening-garnet);
  --ke-opening-tone-light: var(--ke-opening-garnet-light);
}

html.ke-rebrand-mode .ke-opening-bloom-answer.is-peridot,
html.ke-rebrand-mode .ke-opening-bloom-answer.is-burning_bright {
  --ke-opening-tone-deep: var(--ke-opening-peridot-deep);
  --ke-opening-tone: var(--ke-opening-peridot);
  --ke-opening-tone-light: var(--ke-opening-peridot-light);
}

html.ke-rebrand-mode .ke-opening-bloom-answer.is-amethyst,
html.ke-rebrand-mode .ke-opening-bloom-answer.is-burning_low {
  --ke-opening-tone-deep: var(--ke-opening-amethyst-deep);
  --ke-opening-tone: var(--ke-opening-amethyst);
  --ke-opening-tone-light: var(--ke-opening-amethyst-light);
}

html.ke-rebrand-mode .ke-opening-bloom-answer.is-azure,
html.ke-rebrand-mode .ke-opening-bloom-answer.is-steady_glow {
  --ke-opening-tone-deep: var(--ke-opening-azure-deep);
  --ke-opening-tone: var(--ke-opening-azure);
  --ke-opening-tone-light: var(--ke-opening-azure-light);
}

html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer::before,
html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer::before,
html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer::before,
html.ke-rebrand-mode .ke-opening-meet-bloom::before {
  background:
    radial-gradient(circle at 31% 19%,rgba(255,255,255,.22),transparent 28%),
    radial-gradient(circle at 51% 46%,var(--ke-opening-tone-light),var(--ke-opening-tone) 51%,var(--ke-opening-tone-deep) 100%);
  border: 1px solid rgba(255,245,200,.46);
  border-radius: 50%;
  content: '';
  inset: 5px;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer::after,
html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer::after,
html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer::after,
html.ke-rebrand-mode .ke-opening-meet-bloom::after {
  animation: keOpeningJewelSweep 10.8s linear infinite;
  background: conic-gradient(from 0deg,transparent 0 76%,rgba(255,245,199,.7) 84%,transparent 91%);
  border-radius: 50%;
  content: '';
  inset: 1px;
  -webkit-mask: linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: .7;
  padding: 4px;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}

html.ke-rebrand-mode .ke-opening-bloom-answer > strong,
html.ke-rebrand-mode .ke-opening-bloom-answer > small,
html.ke-rebrand-mode .ke-opening-bloom-answer > label,
html.ke-rebrand-mode .ke-opening-bloom-answer > input,
html.ke-rebrand-mode .ke-opening-bloom-answer > button {
  position: relative;
  z-index: 2;
}

html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer > strong {
  color: #fffaf2;
  font: 600 clamp(14px,1.9vw,18px)/1.23 'Playfair Display',serif;
  text-align: center;
  text-shadow: 0 2px 8px rgba(0,0,0,.42);
}

html.ke-rebrand-mode .ke-opening-bloom-answer.is-selected {
  box-shadow: 0 0 0 5px rgba(241,214,144,.22),0 0 38px rgba(241,214,144,.48),0 19px 38px rgba(0,0,0,.42);
}

@keyframes keOpeningJewelSweep {
  to { transform: rotate(360deg); }
}

/* The next screen travels in the same direction as its prompt hex. */
html.ke-rebrand-mode .ke-opening-flow[data-opening-flow-direction="forward"] .ke-opening-screen {
  animation: keOpeningFlowForward .7s cubic-bezier(.45,0,.18,1) both;
}

html.ke-rebrand-mode .ke-opening-flow[data-opening-flow-direction="reverse"] .ke-opening-screen {
  animation: keOpeningFlowReverse .7s cubic-bezier(.45,0,.18,1) both;
}

@keyframes keOpeningFlowForward {
  from { opacity: .84; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes keOpeningFlowReverse {
  from { opacity: .84; transform: translateY(-12px); }
  to { opacity: 1; transform: translateY(0); }
}

html.ke-rebrand-mode .ke-opening-flow[aria-busy="true"] { pointer-events: none; }
html.ke-rebrand-mode .ke-opening-flow.is-flow-swap-masked .ke-opening-screen { opacity: 0; }
html.ke-rebrand-mode .ke-opening-flow[aria-busy="true"] .ke-opening-bloom-answer { animation: none !important; }
html.ke-rebrand-mode .ke-opening-bloom-answer.is-bloom-settled { animation: none !important; opacity: 1; transform: none; }

.ke-opening-flow-hex-ghost {
  background: conic-gradient(from 30deg,#ffe9a0 0 16.666%,#c28c35 16.666% 33.333%,#79501a 33.333% 50%,#9f7127 50% 66.666%,#f0ce78 66.666% 83.333%,#fff0ad 83.333% 100%);
  clip-path: polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  filter: drop-shadow(0 5px 0 rgba(99,64,18,.78)) drop-shadow(0 18px 32px rgba(0,0,0,.46)) drop-shadow(0 0 28px rgba(215,181,109,.38));
  pointer-events: none;
  position: fixed;
  transform-origin: top left;
  z-index: 100001;
}

.ke-opening-flow-hex-ghost > div {
  background:
    radial-gradient(circle at 36% 23%,rgba(255,255,255,.1),transparent 27%),
    radial-gradient(circle at 50% 47%,rgba(215,181,109,.16),transparent 43%),
    linear-gradient(155deg,#29424d 0%,#10242d 58%,#08161b 100%);
  clip-path: inherit;
  inset: 4px;
  position: absolute;
}

/* Fixed top-left Back placement across every intake screen. */
html.ke-rebrand-mode .ke-opening-question-header { position: sticky; }
html.ke-rebrand-mode .ke-opening-question-header > .ke-opening-question-progress { grid-column: 2; }
html.ke-rebrand-mode .ke-opening-question-header > span:last-child { grid-column: 3; }
html.ke-rebrand-mode .ke-opening-question-header > button {
  left: max(18px,env(safe-area-inset-left));
  position: absolute;
  top: max(18px,env(safe-area-inset-top));
}

/* Name input remains native and sits immediately beneath its prompt hex. */
html.ke-rebrand-mode .ke-opening-screen.is-name { overflow-y: auto; }
html.ke-rebrand-mode .ke-opening-name-main { padding-block: max(20px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-bottom)); }
html.ke-rebrand-mode .ke-opening-name-hex { width: clamp(310px,55vw,470px); }
html.ke-rebrand-mode .ke-opening-name-field {
  background: linear-gradient(155deg,rgba(37,59,68,.97),rgba(11,31,39,.98));
  border: 1px solid rgba(234,205,137,.7);
  border-radius: 28px;
  box-shadow: 0 16px 36px rgba(0,0,0,.35),0 0 22px rgba(217,181,97,.12);
  margin: 14px auto 0;
  padding: 13px 14px 4px;
  position: relative;
  width: min(440px,calc(100vw - 32px));
  z-index: 3;
}

html.ke-rebrand-mode .ke-opening-name-field label { padding-inline: 8px; }
html.ke-rebrand-mode .ke-opening-name-main > .ke-opening-primary,
html.ke-rebrand-mode .ke-opening-name-main .ke-opening-primary { margin-top: 14px; }

/* Meet is a real prompt hex followed by the same jewel Bloom. */
html.ke-rebrand-mode .ke-opening-screen.is-meet { align-items: stretch; display: block; overflow-x: hidden; overflow-y: auto; padding: 0; }
html.ke-rebrand-mode .ke-opening-meet-main { padding: 20px max(16px,env(safe-area-inset-right)) max(34px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); }
html.ke-rebrand-mode .ke-opening-meet-hex { width: clamp(320px,57vw,500px); }
html.ke-rebrand-mode .ke-opening-meet-hex .ke-opening-bloom-hex-inner { padding: 48px 64px; }
html.ke-rebrand-mode .ke-opening-meet-hex .ke-opening-meet-flame { height: clamp(72px,15vw,126px); margin: 0 auto 12px; width: clamp(56px,12vw,96px); }
html.ke-rebrand-mode .ke-opening-meet-hex h1 { font-size: clamp(29px,4.8vw,47px); margin: 0 0 12px; }
html.ke-rebrand-mode .ke-opening-meet-hex p { color: rgba(255,250,242,.76) !important; font: 500 clamp(15px,2.2vw,20px)/1.32 'Cormorant Garamond',serif; margin: 0; }
html.ke-rebrand-mode .ke-opening-meet-bloom {
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  color: #fffaf2;
  font: 700 16px/1.18 'Playfair Display',serif;
  margin-top: 30px;
  padding: 24px;
  width: 176px;
}
html.ke-rebrand-mode .ke-opening-meet-bloom > strong { font: 700 16px/1.18 'Playfair Display',serif; }

/* Question and reminder Blooms share the canonical prompt-to-circle flow. */
html.ke-rebrand-mode .ke-opening-question-main,
html.ke-rebrand-mode .ke-opening-reminders-main { padding-top: 10px; }
html.ke-rebrand-mode .ke-opening-question-hex,
html.ke-rebrand-mode .ke-opening-reminders-hex,
html.ke-rebrand-mode .ke-opening-notification-hex { width: clamp(320px,55vw,500px); }
html.ke-rebrand-mode .ke-opening-reminders-hex .ke-opening-bloom-hex-inner { padding: 52px 68px; }
html.ke-rebrand-mode .ke-opening-reminder-circles {
  grid-template-columns: repeat(2,minmax(0,200px));
  max-width: 440px;
}
html.ke-rebrand-mode .ke-opening-reminder-circle {
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  padding: 24px 19px !important;
  width: 200px !important;
}

html.ke-rebrand-mode .ke-opening-reminder-circle > label { cursor: default; display: block; width: 100%; }
html.ke-rebrand-mode .ke-opening-reminder-circle > label strong { display: block; font: 600 23px/1 'Playfair Display',serif; }
html.ke-rebrand-mode .ke-opening-reminder-circle > label small { color: rgba(255,250,242,.72); display: block; font-size: 8px; margin-top: 5px; }
html.ke-rebrand-mode .ke-opening-reminder-circle > input {
  background: #fffaf2;
  border: 2px solid #ead18f;
  border-radius: 13px;
  color: #12252d;
  color-scheme: light;
  font: 800 14px 'DM Sans',sans-serif;
  margin-top: 12px;
  min-height: 47px;
  padding-inline: 7px;
  width: 90%;
}

html.ke-rebrand-mode .ke-opening-reminder-delete {
  appearance: none;
  background: rgba(5,20,27,.42);
  border: 1px solid rgba(255,238,190,.34);
  border-radius: 999px;
  color: rgba(255,250,242,.82);
  cursor: pointer;
  font: 800 7px/1 'DM Sans',sans-serif;
  margin-bottom: 10px;
  min-height: 25px;
  padding: 0 9px;
}

html.ke-rebrand-mode .ke-opening-reminder-circle.is-add strong { font: 600 23px/1.05 'Playfair Display',serif; }
html.ke-rebrand-mode .ke-opening-reminder-circle.is-add small { color: rgba(255,250,242,.72); font-size: 9px; line-height: 1.35; }
html.ke-rebrand-mode .ke-opening-reminders-main .ke-opening-primary { margin-top: 10px; }

/* Notification choice uses the exact same prompt-and-two-circles composition. */
html.ke-rebrand-mode .ke-opening-screen.is-notification,
html.ke-rebrand-mode .ke-opening-screen.is-checkin {
  align-items: stretch;
  display: block;
  padding: 0;
}
html.ke-rebrand-mode .ke-opening-notification-main { padding: 12px max(16px,env(safe-area-inset-right)) max(34px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); }
html.ke-rebrand-mode .ke-opening-notification-hex .ke-opening-bloom-hex-inner { padding: 46px 66px; }
html.ke-rebrand-mode .ke-opening-notification-times { background: rgba(4,19,26,.34); margin-bottom: 0; }
html.ke-rebrand-mode .ke-opening-notification-times strong + strong { border-left: 1px solid rgba(235,204,133,.3); }
html.ke-rebrand-mode .ke-opening-notification-answers .ke-opening-bloom-answer {
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  display: flex;
  font: 800 13px/1.25 'DM Sans',sans-serif;
  margin: 0;
  min-width: 0;
  width: 176px;
}
html.ke-rebrand-mode .ke-opening-notification-answers .ke-opening-bloom-answer > strong { font: 800 13px/1.25 'DM Sans',sans-serif; }
html.ke-rebrand-mode .ke-opening-screen.is-checkin .ke-opening-question-header { min-height: 74px; }

/* Recap: one summary prompt hex, then every exact answer blooms as a jewel. */
html.ke-rebrand-mode .ke-opening-screen.is-recap { align-items: flex-start; }
html.ke-rebrand-mode .ke-opening-recap-main { max-width: 760px; padding: max(24px,env(safe-area-inset-top)) 0 max(40px,env(safe-area-inset-bottom)); }
html.ke-rebrand-mode .ke-opening-recap-hex { width: clamp(330px,58vw,520px); }
html.ke-rebrand-mode .ke-opening-recap-hex .ke-opening-bloom-hex-inner { padding: 50px 66px; }
html.ke-rebrand-mode .ke-opening-recap-hex .ke-opening-recap-flame { filter: drop-shadow(0 0 24px rgba(238,189,64,.7)); height: 82px; left: auto; margin: 0 auto 10px; opacity: 1; position: relative; top: auto; transform: none; width: 64px; z-index: 1; }
html.ke-rebrand-mode .ke-opening-recap-hex h1 { font-size: clamp(29px,4.8vw,48px); line-height: 1.03; margin: 0; }
html.ke-rebrand-mode .ke-opening-recap-bloom { gap: 22px; max-width: 560px; }
html.ke-rebrand-mode .ke-opening-recap-main ul.ke-opening-recap-bloom { display: grid; margin: 0 auto 25px; padding: 34px 0 4px; text-align: center; }
html.ke-rebrand-mode .ke-opening-recap-main .ke-opening-recap-circle {
  animation: keOpeningAnswerBloomDown .68s calc(120ms + var(--ke-opening-answer-index) * 72ms) cubic-bezier(.16,1,.3,1) both;
  aspect-ratio: 1 / 1;
  border: 0;
  border-radius: 50%;
  justify-content: center;
  padding: 24px;
  width: 176px;
}
html.ke-rebrand-mode .ke-opening-recap-circle small { color: #f1d88f; font-size: 8px; font-weight: 900; letter-spacing: .7px; line-height: 1.2; text-transform: uppercase; }
html.ke-rebrand-mode .ke-opening-recap-circle strong { color: #fffaf2; font: 600 16px/1.15 'Playfair Display',serif; margin-top: 7px; }
html.ke-rebrand-mode .ke-opening-recap-main > .ke-opening-bloom-stage > p { animation: keOpeningRecapLine .6s 1.1s ease both; color: rgba(255,250,242,.78) !important; font: 500 21px/1.35 'Cormorant Garamond',serif; margin: 20px auto 22px; max-width: 540px; }
html.ke-rebrand-mode .ke-opening-recap-main > .ke-opening-bloom-stage > .ke-opening-primary { animation: keOpeningRecapLine .6s 1.25s ease both; }

@media (max-width: 560px) {
  html.ke-rebrand-mode .ke-opening-question-header { min-height: 126px; }
  html.ke-rebrand-mode .ke-opening-question-header > button { left: max(12px,env(safe-area-inset-left)); top: max(12px,env(safe-area-inset-top)); }
  html.ke-rebrand-mode .ke-opening-question-progress { height: 112px; }
  html.ke-rebrand-mode .ke-opening-name-hex,
  html.ke-rebrand-mode .ke-opening-meet-hex,
  html.ke-rebrand-mode .ke-opening-question-hex,
  html.ke-rebrand-mode .ke-opening-reminders-hex,
  html.ke-rebrand-mode .ke-opening-notification-hex,
  html.ke-rebrand-mode .ke-opening-recap-hex { width: min(330px,calc(100vw - 28px)); }
  html.ke-rebrand-mode .ke-opening-meet-hex .ke-opening-bloom-hex-inner,
  html.ke-rebrand-mode .ke-opening-recap-hex .ke-opening-bloom-hex-inner { padding: 35px 42px; }
  html.ke-rebrand-mode .ke-opening-meet-hex .ke-opening-meet-flame { height: 66px; width: 51px; }
  html.ke-rebrand-mode .ke-opening-meet-hex h1,
  html.ke-rebrand-mode .ke-opening-recap-hex h1 { font-size: clamp(24px,7.7vw,31px); }
  html.ke-rebrand-mode .ke-opening-meet-bloom { margin-top: 22px; width: 145px; }
  html.ke-rebrand-mode .ke-opening-bloom-answers,
  html.ke-rebrand-mode .ke-opening-options.ke-opening-bloom-answers,
  html.ke-rebrand-mode .ke-opening-checkin-options.ke-opening-bloom-answers { padding-top: 28px; }
  html.ke-rebrand-mode .ke-opening-reminder-circles { grid-template-columns: repeat(2,minmax(0,145px)); max-width: 320px; }
  html.ke-rebrand-mode .ke-opening-reminder-circle { padding: 12px 13px !important; width: 145px !important; }
  html.ke-rebrand-mode .ke-opening-reminder-circle > label strong { font-size: 18px; }
  html.ke-rebrand-mode .ke-opening-reminder-circle > input { font-size: 11px; margin-top: 7px; min-height: 41px; width: 96%; }
  html.ke-rebrand-mode .ke-opening-reminder-delete { font-size: 6px; margin-bottom: 5px; min-height: 28px; }
  html.ke-rebrand-mode .ke-opening-notification-answers .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-recap-main .ke-opening-recap-circle { padding: 17px; width: 145px; }
  html.ke-rebrand-mode .ke-opening-recap-main ul.ke-opening-recap-bloom { gap: 18px 14px; max-width: 320px; padding-top: 28px; }
  html.ke-rebrand-mode .ke-opening-recap-circle strong { font-size: 13px; }
  html.ke-rebrand-mode .ke-opening-recap-hex .ke-opening-recap-flame { height: 56px; width: 44px; }
}

@media (max-width: 350px) {
  html.ke-rebrand-mode .ke-opening-name-hex,
  html.ke-rebrand-mode .ke-opening-meet-hex,
  html.ke-rebrand-mode .ke-opening-question-hex,
  html.ke-rebrand-mode .ke-opening-reminders-hex,
  html.ke-rebrand-mode .ke-opening-notification-hex,
  html.ke-rebrand-mode .ke-opening-recap-hex { width: min(292px,calc(100vw - 28px)); }
  html.ke-rebrand-mode .ke-opening-reminder-circles { grid-template-columns: repeat(2,minmax(0,128px)); max-width: 276px; }
  html.ke-rebrand-mode .ke-opening-reminder-delete { min-height: 26px; }
  html.ke-rebrand-mode .ke-opening-reminder-circle,
  html.ke-rebrand-mode .ke-opening-notification-answers .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-recap-main .ke-opening-recap-circle { width: 128px !important; }
  html.ke-rebrand-mode .ke-opening-reminder-circle > input { font-size: 10px; }
}

@media (max-height: 620px) and (orientation: landscape) {
  html.ke-rebrand-mode .ke-opening-screen.is-name,
  html.ke-rebrand-mode .ke-opening-screen.is-meet,
  html.ke-rebrand-mode .ke-opening-screen.is-question,
  html.ke-rebrand-mode .ke-opening-screen.is-reminders,
  html.ke-rebrand-mode .ke-opening-screen.is-notification,
  html.ke-rebrand-mode .ke-opening-screen.is-recap { overflow-y: auto; }
  html.ke-rebrand-mode .ke-opening-question-header { min-height: 96px; }
  html.ke-rebrand-mode .ke-opening-question-progress { height: 82px; }
  html.ke-rebrand-mode .ke-opening-bloom-hex { max-width: min(320px,calc(100dvh - 120px)); }
  html.ke-rebrand-mode .ke-opening-question-main .ke-opening-question-hex h1,
  html.ke-rebrand-mode .ke-opening-reminders-main .ke-opening-reminders-hex h1,
  html.ke-rebrand-mode .ke-opening-notification-hex h1,
  html.ke-rebrand-mode .ke-opening-recap-hex h1 { font-size: clamp(23px,4vw,31px); max-width: 230px; }
  html.ke-rebrand-mode .ke-opening-question-hex .ke-opening-bloom-hex-inner,
  html.ke-rebrand-mode .ke-opening-reminders-hex .ke-opening-bloom-hex-inner,
  html.ke-rebrand-mode .ke-opening-notification-hex .ke-opening-bloom-hex-inner,
  html.ke-rebrand-mode .ke-opening-recap-hex .ke-opening-bloom-hex-inner { padding: 34px 42px; }
}

@media (prefers-reduced-motion: reduce) {
  html.ke-rebrand-mode .ke-opening-flow[data-opening-flow-direction] .ke-opening-screen,
  html.ke-rebrand-mode .ke-opening-bloom-answer::after,
  .ke-opening-flow-hex-ghost { animation: none !important; }
}

/* Canonical dashboard Bloom parity ---------------------------------------
   The opening uses the same dark jewel centers, faceted hex shimmer,
   connector breath, 1.6-second outward flight, and 10.8-second rim sweep as
   the live dashboard constellation. */
html.ke-rebrand-mode .ke-opening-flow {
  --ke-opening-garnet-surface:
    radial-gradient(circle at 38% 25%,rgba(255,255,255,.035),transparent 29%),
    radial-gradient(circle at 50% 42%,#740e1c 0 27%,#30060a 72%,#030102 100%);
  --ke-opening-peridot-surface:
    radial-gradient(circle at 38% 25%,rgba(255,255,255,.035),transparent 29%),
    radial-gradient(circle at 50% 42%,#297b0d 0 27%,#113205 72%,#010301 100%);
  --ke-opening-amethyst-surface:
    radial-gradient(circle at 38% 25%,rgba(255,255,255,.035),transparent 29%),
    radial-gradient(circle at 50% 42%,#460f75 0 27%,#200530 72%,#020103 100%);
  --ke-opening-azure-surface:
    radial-gradient(circle at 38% 25%,rgba(255,255,255,.035),transparent 29%),
    radial-gradient(circle at 50% 42%,#135f8a 0 27%,#06243a 72%,#010203 100%);
}

html.ke-rebrand-mode .ke-opening-bloom-hex {
  animation: keOpeningHexBloom 620ms cubic-bezier(.45,0,.18,1) both;
  filter:
    drop-shadow(0 4px 0 rgba(99,64,18,.82))
    drop-shadow(0 15px 26px rgba(0,0,0,.38))
    drop-shadow(0 0 25px rgba(215,181,109,.34));
}

html.ke-rebrand-mode .ke-opening-bloom-hex-inner::before {
  border: 1px solid rgba(241,220,167,.14);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08),inset -10px -12px 20px rgba(0,0,0,.2);
  inset: 4px;
}

html.ke-rebrand-mode .ke-opening-bloom-hex::after {
  animation: keOpeningHexEdgeShimmer 7.8s ease-in-out infinite;
  background: linear-gradient(112deg,transparent 25%,rgba(255,250,228,.28) 40%,rgba(255,242,191,.9) 48%,#d7b56d 53%,transparent 67%);
  background-size: 300% 100%;
  clip-path: polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  content: '';
  inset: 1px;
  opacity: .62;
  padding: 2px;
  pointer-events: none;
  position: absolute;
  z-index: 2;
  -webkit-mask: linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

@keyframes keOpeningHexEdgeShimmer {
  0%,18% { background-position: 125% 0; opacity: .24; }
  52% { opacity: .68; }
  82%,100% { background-position: -125% 0; opacity: .28; }
}

html.ke-rebrand-mode .ke-opening-bloom-answers,
html.ke-rebrand-mode .ke-opening-options.ke-opening-bloom-answers,
html.ke-rebrand-mode .ke-opening-checkin-options.ke-opening-bloom-answers {
  gap: 22px;
  padding-top: 52px;
}

html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer,
html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer,
html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer,
html.ke-rebrand-mode .ke-opening-meet-bloom {
  animation: keOpeningAnswerBloomDown 1600ms calc(140ms + var(--ke-opening-answer-index) * 45ms) cubic-bezier(.45,0,.18,1) both;
  background: conic-gradient(from 215deg,#82591f 0%,#d5aa50 18%,#fff0b4 31%,#b7802c 49%,#f0d488 69%,#916323 84%,#d7b56d 100%);
  border: 0;
  box-shadow: none;
  filter: drop-shadow(0 3px 0 rgba(105,72,24,.78)) drop-shadow(0 11px 20px rgba(0,0,0,.26)) drop-shadow(0 0 10px rgba(215,181,109,.22));
  overflow: visible;
  transition: filter 220ms ease,color 260ms ease;
}

html.ke-rebrand-mode .ke-opening-bloom-answer.is-garnet,
html.ke-rebrand-mode .ke-opening-bloom-answer.is-blazing { --ke-opening-tone-surface: var(--ke-opening-garnet-surface); }
html.ke-rebrand-mode .ke-opening-bloom-answer.is-peridot,
html.ke-rebrand-mode .ke-opening-bloom-answer.is-burning_bright { --ke-opening-tone-surface: var(--ke-opening-peridot-surface); }
html.ke-rebrand-mode .ke-opening-bloom-answer.is-amethyst,
html.ke-rebrand-mode .ke-opening-bloom-answer.is-burning_low { --ke-opening-tone-surface: var(--ke-opening-amethyst-surface); }
html.ke-rebrand-mode .ke-opening-bloom-answer.is-azure,
html.ke-rebrand-mode .ke-opening-bloom-answer.is-steady_glow { --ke-opening-tone-surface: var(--ke-opening-azure-surface); }

html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer::before,
html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer::before,
html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer::before,
html.ke-rebrand-mode .ke-opening-meet-bloom::before {
  background-color: var(--ke-opening-tone-deep);
  background-image: var(--ke-opening-tone-surface,var(--ke-opening-azure-surface));
  border: 0;
  box-shadow: inset 0 1px 2px rgba(255,255,255,.12);
  inset: 4px;
}

html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer::after,
html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer::after,
html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer::after,
html.ke-rebrand-mode .ke-opening-meet-bloom::after {
  animation: keOpeningJewelSweep 10.8s linear infinite;
  animation-delay: calc(var(--ke-opening-answer-index) * -1.8s);
  background: conic-gradient(from 0deg,#b98329 0deg 205deg,#d9ae50 220deg,#f7dc91 238deg,#fff9dd 252deg,#e8bc5a 267deg,#c28b2d 288deg,#b98329 360deg);
  inset: 1px;
  opacity: .94;
  padding: 3px;
}

html.ke-rebrand-mode .ke-opening-bloom-connector {
  animation: keOpeningConnectorBloomOut 1600ms calc(140ms + var(--ke-opening-answer-index) * 45ms) cubic-bezier(.45,0,.18,1) both;
  background: linear-gradient(180deg,rgba(215,181,109,.06),rgba(241,220,167,.58) 46%,rgba(215,181,109,.18) 100%);
  box-shadow: 0 0 5px rgba(215,181,109,.28);
  display: block;
  height: 52px;
  left: calc(50% - 1px);
  opacity: .48;
  pointer-events: none;
  position: absolute;
  top: -52px;
  transform-origin: 50% 0;
  width: 2px;
  z-index: -1;
}

html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer:nth-child(n+3) .ke-opening-bloom-connector {
  height: 22px;
  top: -22px;
}

html.ke-rebrand-mode .ke-opening-meet-bloom .ke-opening-bloom-connector {
  height: 30px;
  top: -30px;
}

@keyframes keOpeningAnswerBloomDown {
  from { opacity: 0; transform: translateY(-110px) scale(.94); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes keOpeningConnectorBloomOut {
  from { opacity: 0; transform: scaleY(0); }
  to { opacity: .48; transform: scaleY(1); }
}

html.ke-rebrand-mode .ke-opening-flow[data-opening-flow-direction="forward"] .ke-opening-screen,
html.ke-rebrand-mode .ke-opening-flow[data-opening-flow-direction="reverse"] .ke-opening-screen {
  animation-duration: 620ms;
  animation-timing-function: cubic-bezier(.45,0,.18,1);
}

@media (max-width: 560px) {
  html.ke-rebrand-mode .ke-opening-name-hex,
  html.ke-rebrand-mode .ke-opening-meet-hex,
  html.ke-rebrand-mode .ke-opening-question-hex,
  html.ke-rebrand-mode .ke-opening-reminders-hex,
  html.ke-rebrand-mode .ke-opening-notification-hex,
  html.ke-rebrand-mode .ke-opening-recap-hex { width: min(300px,calc(100vw - 48px)); }

  html.ke-rebrand-mode .ke-opening-bloom-answers,
  html.ke-rebrand-mode .ke-opening-options.ke-opening-bloom-answers,
  html.ke-rebrand-mode .ke-opening-checkin-options.ke-opening-bloom-answers {
    gap: 18px 14px;
    grid-template-columns: repeat(2,minmax(0,132px));
    max-width: 278px;
    padding-top: 40px;
  }

  html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-reminder-circle,
  html.ke-rebrand-mode .ke-opening-notification-answers .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-recap-main .ke-opening-recap-circle {
    padding: 15px !important;
    width: 132px !important;
  }

  html.ke-rebrand-mode .ke-opening-bloom-connector { height: 40px; top: -40px; }
  html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer:nth-child(n+3) .ke-opening-bloom-connector { height: 18px; top: -18px; }
  html.ke-rebrand-mode .ke-opening-meet-bloom { width: 132px; }
  html.ke-rebrand-mode .ke-opening-meet-bloom .ke-opening-bloom-connector { height: 22px; top: -22px; }
}

@media (max-width: 350px) {
  html.ke-rebrand-mode .ke-opening-bloom-answers,
  html.ke-rebrand-mode .ke-opening-options.ke-opening-bloom-answers,
  html.ke-rebrand-mode .ke-opening-checkin-options.ke-opening-bloom-answers { grid-template-columns: repeat(2,minmax(0,120px)); max-width: 252px; }
  html.ke-rebrand-mode .ke-opening-bloom-answers > .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-options > .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-checkin-options > .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-reminder-circle,
  html.ke-rebrand-mode .ke-opening-notification-answers .ke-opening-bloom-answer,
  html.ke-rebrand-mode .ke-opening-recap-main .ke-opening-recap-circle { width: 120px !important; }
}

@media (prefers-reduced-motion: reduce) {
  html.ke-rebrand-mode .ke-opening-bloom-hex::after,
  html.ke-rebrand-mode .ke-opening-bloom-answer::after,
  html.ke-rebrand-mode .ke-opening-bloom-connector { animation: none !important; }
  html.ke-rebrand-mode .ke-opening-bloom-connector { opacity: .48 !important; transform: scaleY(1) !important; }
}

/* Canonical opening constellation -----------------------------------------
   Opening questions now use the same measured Bloom grammar as the live
   dashboard: one shared hex core, measured rays, 1–6 radial medallions, and
   the same two-column cascade used by the app for longer choice sets. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] {
  --ke-opening-core-size: clamp(168px,55%,214px);
  display: block;
  height: min(700px,calc(100dvh - 132px));
  isolation: isolate;
  margin: 0 auto;
  max-width: 430px;
  min-height: 520px;
  overflow: hidden;
  position: relative;
  width: min(100%,430px);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="cascade"] {
  height: min(700px,calc(100dvh - 132px));
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  scrollbar-color: rgba(215,181,109,.62) rgba(8,23,30,.28);
  scrollbar-width: thin;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="cascade"]::after {
  content: "";
  display: block;
  height: var(--ke-opening-content-height);
  pointer-events: none;
  width: 1px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-bloom-hex {
  animation: none !important;
  aspect-ratio: 1;
  filter:
    drop-shadow(0 4px 0 rgba(99,64,18,.82))
    drop-shadow(0 15px 26px rgba(0,0,0,.38))
    drop-shadow(0 0 25px rgba(215,181,109,.34));
  height: auto !important;
  margin: 0;
  max-width: none;
  position: absolute;
  transform: translate(-50%,-50%);
  width: var(--ke-opening-core-size) !important;
  z-index: 3;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-bloom-hex .ke-opening-bloom-hex-inner {
  height: calc(100% - 8px);
  padding: 16% 12% !important;
  width: calc(100% - 8px);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-bloom-hex h1 {
  color: #fff !important;
  line-height: 1.02 !important;
  margin: 0 auto !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.24);
  text-wrap: balance;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-bloom-answers,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-options,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-checkin-options,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-reminder-circles,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-recap-bloom {
  display: contents !important;
  margin: 0 !important;
  padding: 0 !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-reminder-circle,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-recap-circle {
  align-items: center;
  animation: none !important;
  aspect-ratio: 1;
  background: conic-gradient(from 215deg,#82591f 0%,#d5aa50 18%,#fff0b4 31%,#b7802c 49%,#f0d488 69%,#916323 84%,#d7b56d 100%);
  border: 0;
  border-radius: 50%;
  box-sizing: border-box;
  box-shadow: none;
  display: flex;
  filter:
    drop-shadow(0 3px 0 rgba(105,72,24,.78))
    drop-shadow(0 11px 20px rgba(0,0,0,.26))
    drop-shadow(0 0 10px rgba(215,181,109,.22));
  flex-direction: column;
  height: auto !important;
  justify-content: center;
  margin: 0 !important;
  min-height: 44px;
  overflow: hidden;
  padding: clamp(12px,3.8vw,18px) !important;
  position: absolute;
  transform: translate(-50%,-50%);
  transition: filter 220ms ease,color 260ms ease;
  z-index: 2;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer::before,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-reminder-circle::before,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-recap-circle::before {
  background-color: var(--ke-opening-tone-deep);
  background-image: var(--ke-opening-tone-surface,var(--ke-opening-azure-surface));
  border: 0;
  border-radius: 50%;
  box-shadow: inset 0 1px 2px rgba(255,255,255,.12);
  inset: 4px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer::after,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-reminder-circle::after,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-recap-circle::after {
  animation: keLuminousCircleRimSweep 10.8s linear infinite !important;
  animation-delay: calc(var(--ke-opening-answer-index) * -1.8s) !important;
  background: conic-gradient(from 0deg,#b98329 0deg 205deg,#d9ae50 220deg,#f7dc91 238deg,#fff9dd 252deg,#e8bc5a 267deg,#c28b2d 288deg,#b98329 360deg);
  border-radius: 50%;
  inset: 1px;
  opacity: .94;
  padding: 3px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer > strong,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer > small {
  color: #fff !important;
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 100% !important;
  overflow-wrap: normal;
  text-shadow: 0 1px 2px rgba(0,0,0,.24);
  text-wrap: balance;
  white-space: normal;
  word-break: normal;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer > strong {
  font: 600 clamp(12px,3.25vw,15px)/1.08 'Playfair Display',serif !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer > small {
  font: 650 clamp(8px,2.35vw,11px)/1.14 'DM Sans',sans-serif !important;
  margin-top: 7px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer:is(.is-selected,:active) {
  filter:
    brightness(1.08)
    drop-shadow(0 3px 0 rgba(105,72,24,.78))
    drop-shadow(0 11px 20px rgba(0,0,0,.26))
    drop-shadow(0 0 15px rgba(215,181,109,.38));
  transform: translate(-50%,-50%) scale(1) !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer:disabled {
  opacity: 1;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-canonical-connectors {
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-canonical-connectors > .ke-opening-bloom-connector {
  animation: none !important;
  background: rgba(215,181,109,.46);
  border: 0;
  box-shadow: none;
  display: block;
  margin-left: -1px;
  min-height: 8px;
  opacity: .48;
  position: absolute;
  transform-origin: 50% 0;
  width: 2px;
  z-index: auto;
}

html.ke-rebrand-mode #ke-opening-flow[data-opening-flow-direction] .ke-opening-screen {
  animation: none !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="cascade"] .ke-opening-bloom-answer,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="cascade"] .ke-opening-recap-circle {
  padding: clamp(14px,4vw,20px) !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="cascade"] .ke-opening-bloom-answer > strong,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="cascade"] .ke-opening-recap-circle > strong {
  font-size: clamp(12px,3.55vw,16px) !important;
  line-height: 1.07 !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reminders-main .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-primary {
  bottom: 8px;
  left: 50%;
  margin: 0;
  position: absolute;
  transform: translateX(-50%);
  z-index: 4;
}

@media (max-width: 560px) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] {
    height: calc(100dvh - 126px);
    min-height: 500px;
    width: min(calc(100vw - 16px),430px);
  }
}

@media (prefers-reduced-motion: reduce) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-hex {
    opacity: 1 !important;
    transform: translate(-50%,-50%) !important;
  }
}

/* Long supporting copy belongs in the open lower canvas, not inside the
   prompt hex. Each thought enters with the same paced rise as the ignition
   introduction while the canonical hex, rays, and jewel positions stay intact. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-main-with-explainer {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  height: calc(100dvh - 158px);
  margin: 0 auto;
  min-height: 0;
  overflow: hidden;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-main-with-explainer > .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] {
  flex: 1 1 auto;
  height: auto !important;
  min-height: 0 !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-explainer {
  color: rgba(255,250,242,.78);
  flex: 0 0 auto;
  font: 500 clamp(17px,2.6vw,21px)/1.28 'Playfair Display',serif;
  margin: 0 auto;
  max-width: 390px;
  min-height: 104px;
  padding: 10px 18px max(18px,env(safe-area-inset-bottom));
  position: relative;
  text-align: center;
  width: min(100%,390px);
  z-index: 5;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-explainer p {
  margin: 0 0 6px;
  opacity: 0;
  text-wrap: balance;
  transform: translateY(10px);
}

html.ke-rebrand-mode #ke-opening-flow.show .ke-opening-explainer p {
  animation: keOpeningLineIn .7s calc(1.2s + var(--ke-opening-explainer-index) * .52s) cubic-bezier(.22,.75,.24,1) forwards;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-explainer p.is-highlight {
  color: #ddbd71 !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-checkin-confirmation {
  min-height: 0;
  padding-bottom: 8px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-checkin-confirmation > strong,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-checkin-confirmation > small {
  opacity: 0;
  transform: translateY(10px);
}

html.ke-rebrand-mode #ke-opening-flow.show .ke-opening-checkin-confirmation:not([hidden]) > strong,
html.ke-rebrand-mode #ke-opening-flow.show .ke-opening-checkin-confirmation:not([hidden]) > small {
  animation: keOpeningLineIn .7s 2.78s cubic-bezier(.22,.75,.24,1) forwards;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-explainer {
  margin-top: 14px;
}

@media (max-width: 560px) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-main-with-explainer {
    height: calc(100dvh - 126px);
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-explainer {
    font-size: clamp(15px,4.7vw,18px);
    min-height: 96px;
    padding: 8px 14px max(12px,env(safe-area-inset-bottom));
  }
}

@media (max-height: 700px) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-explainer {
    font-size: 15px;
    line-height: 1.18;
    min-height: 78px;
    padding-block: 5px 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-explainer p,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-checkin-confirmation > strong,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-checkin-confirmation > small {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Downward opening flow ---------------------------------------------------
   Every intake screen now uses the exact cascade geometry from the app's
   Name what is here flow. Answer jewels descend beneath the prompt, then
   collapse upward before the next prompt fades into that same position. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-flow-down="true"][data-opening-canonical-bloom="true"] {
  --ke-opening-core-size: clamp(168px,55%,214px);
  margin-inline: auto;
  max-width: 430px;
  width: min(calc(100vw - 16px),430px);
}

/* The first Check-In is the same four-point radial Bloom as the app. Its
   prompt uses the garnet center shown before a Flame tier is selected. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-screen.is-checkin .ke-opening-checkin-hex .ke-opening-bloom-hex-inner::before {
  background-color: var(--ke-opening-garnet-deep);
  background-image: var(--ke-opening-garnet-surface);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-flow-down="true"][data-opening-canonical-bloom="true"] .ke-opening-bloom-answer,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-flow-down="true"][data-opening-canonical-bloom="true"] .ke-opening-reminder-circle {
  padding: clamp(18px,4.8vw,24px) !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-flow-down="true"][data-opening-canonical-bloom="true"] .ke-opening-bloom-answer > strong,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-flow-down="true"][data-opening-canonical-bloom="true"] .ke-opening-reminder-circle > strong,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-flow-down="true"][data-opening-canonical-bloom="true"] .ke-opening-reminder-circle label > strong {
  font-size: clamp(15px,4vw,19px) !important;
  line-height: 1.1 !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-flow-down="true"][data-opening-canonical-bloom="true"] .ke-opening-bloom-answer > small,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-flow-down="true"][data-opening-canonical-bloom="true"] .ke-opening-reminder-circle label > small {
  font-size: clamp(9px,2.5vw,12px) !important;
  line-height: 1.24 !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-flow-down="true"][data-opening-canonical-bloom="true"] > .ke-opening-bloom-hex .ke-opening-bloom-hex-inner {
  padding: 15% 12% !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reminders-main .ke-opening-bloom-stage[data-opening-flow-down="true"] > .ke-opening-stage-action {
  bottom: auto;
  left: 50%;
  margin: 0;
  position: absolute;
  top: calc(var(--ke-opening-content-height) - 82px);
  transform: translateX(-50%);
  z-index: 5;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reminders-main .ke-opening-bloom-stage[data-opening-flow-down="true"] > .ke-opening-stage-status {
  bottom: auto;
  left: 50%;
  margin: 0;
  min-height: 16px;
  position: absolute;
  text-align: center;
  top: calc(var(--ke-opening-content-height) - 111px);
  transform: translateX(-50%);
  width: min(360px,90%);
  z-index: 5;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-notification-main .ke-opening-explainer {
  order: 3;
}

/* The final recap keeps the complete answer set on one screen as floating
   words. It intentionally has no orbit circles or connector layer. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-screen.is-recap {
  display: block;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-main {
  box-sizing: border-box;
  margin: 0 auto;
  max-width: 430px;
  padding: max(24px,env(safe-area-inset-top)) 8px max(30px,env(safe-area-inset-bottom));
  width: min(100%,430px);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-stage {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  min-height: calc(100dvh - max(54px,env(safe-area-inset-top)));
  width: 100%;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-stage > .ke-opening-recap-hex {
  flex: 0 0 214px;
  height: 214px !important;
  margin: 0 auto;
  max-width: 214px;
  width: 214px !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-stage > .ke-opening-recap-hex .ke-opening-bloom-hex-inner {
  padding: 15% 12% !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-stage .ke-opening-recap-flame {
  height: 50px;
  margin: 0 auto 6px;
  width: 39px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-stage .ke-opening-recap-hex h1 {
  font-size: clamp(20px,5.8vw,26px) !important;
  line-height: 1.02 !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-main ul.ke-opening-recap-floats {
  display: grid;
  gap: 8px 12px;
  grid-template-columns: repeat(2,minmax(0,1fr));
  list-style: none;
  margin: 14px auto 8px;
  padding: 0 8px;
  text-align: center;
  width: 100%;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-float {
  align-items: center;
  animation: keOpeningRecapFloatIn .62s var(--ke-recap-delay) cubic-bezier(.16,1,.3,1) both;
  background: radial-gradient(circle,rgba(215,181,109,.08),transparent 72%);
  border: 0;
  border-radius: 18px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 48px;
  padding: 4px 6px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-float small {
  color: #d8b66d;
  display: block;
  font: 850 7px/1.12 'DM Sans',sans-serif;
  letter-spacing: .45px;
  text-transform: uppercase;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-float strong {
  color: #fffaf2;
  display: block;
  font: 600 clamp(12px,3.35vw,15px)/1.08 'Playfair Display',serif;
  margin-top: 3px;
  text-wrap: balance;
}

@keyframes keOpeningRecapFloatIn {
  from { filter: blur(5px); opacity: 0; transform: translateY(16px) scale(.96); }
  to { filter: blur(0); opacity: 1; transform: translateY(0) scale(1); }
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-stage > .ke-opening-recap-explainer {
  font-size: clamp(15px,4vw,18px);
  margin: 4px auto 6px;
  min-height: 64px;
  padding: 4px 16px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-continue {
  flex: 0 0 auto;
  margin: 6px auto 0;
  min-width: 220px;
  position: relative;
  z-index: 8;
}

@media (max-width: 370px) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-main ul.ke-opening-recap-floats {
    gap: 6px 8px;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-float {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-float {
    animation: none !important;
    filter: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Approved shared shape system -------------------------------------------
   A point-up/point-down hex now matches the dashboard Flame core. The
   measured Bloom still owns placement, while this layer restores the larger
   choice sizes that older phone overrides reduced to 120–132px. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-hex,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-hex-inner,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-flame,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-flame-picture,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-meet-flame,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-meet-flame svg {
  overflow: visible;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-bloom-hex .ke-opening-bloom-hex-inner {
  padding: 17% 12% !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-bloom-hex,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-reminder-circle,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-recap-circle {
  backface-visibility: hidden;
  transform-origin: 50% 50%;
  will-change: opacity, transform;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-reminder-circle,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-recap-circle {
  overflow: visible;
}

/* Two-column question circles use every safe pixel in the 430px Bloom
   canvas. This wins over the obsolete 120/132px !important phone caps. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="cascade"] .ke-opening-bloom-answer,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="cascade"] .ke-opening-reminder-circle,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="cascade"] .ke-opening-recap-circle {
  width: var(--ke-opening-choice-size) !important;
}

/* Preserve the app's centered radial grammar while allowing each count to
   retain its intended, larger diameter on small screens. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="radial"][data-opening-bloom-count="1"] .ke-opening-bloom-answer { width: 42% !important; }
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="radial"][data-opening-bloom-count="2"] .ke-opening-bloom-answer { width: 38% !important; }
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="radial"][data-opening-bloom-count="3"] .ke-opening-bloom-answer { width: 35% !important; }
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="radial"][data-opening-bloom-count="4"] .ke-opening-bloom-answer { width: 36% !important; }
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="radial"][data-opening-bloom-count="5"] .ke-opening-bloom-answer { width: 31.5% !important; }
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="radial"][data-opening-bloom-count="6"] .ke-opening-bloom-answer { width: 33% !important; }

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer > strong,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer > small,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-reminder-circle > label {
  max-width: 86% !important;
  overflow-wrap: break-word;
  text-align: center;
}

/* Naming establishes the app-wide "write in a circle" convention. The
   native text input remains focusable and editable inside the jewel. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-field {
  align-items: center;
  aspect-ratio: 1;
  background: conic-gradient(from 215deg,#82591f 0%,#d5aa50 18%,#fff0b4 31%,#b7802c 49%,#f0d488 69%,#916323 84%,#d7b56d 100%);
  border: 0;
  border-radius: 50%;
  box-shadow: none;
  display: flex;
  filter: drop-shadow(0 3px 0 rgba(105,72,24,.78)) drop-shadow(0 14px 24px rgba(0,0,0,.3)) drop-shadow(0 0 13px rgba(215,181,109,.27));
  flex-direction: column;
  isolation: isolate;
  justify-content: center;
  margin-top: 18px;
  min-height: 0;
  padding: clamp(36px,9vw,54px) clamp(28px,8vw,46px);
  width: min(300px,calc(100vw - 40px));
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-field::before {
  background:
    radial-gradient(circle at 38% 24%,rgba(255,255,255,.055),transparent 29%),
    radial-gradient(circle at 50% 43%,#740e1c 0 27%,#30060a 72%,#030102 100%);
  border: 1px solid rgba(255,245,200,.38);
  border-radius: 50%;
  box-shadow: inset 0 1px 2px rgba(255,255,255,.12);
  content: '';
  inset: 4px;
  pointer-events: none;
  position: absolute;
  z-index: -1;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-field > * {
  position: relative;
  z-index: 1;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-field label {
  color: #f0d38d;
  margin-bottom: 8px;
  max-width: none;
  padding: 0;
  text-align: center;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-field input {
  background: transparent;
  border: 0;
  border-bottom: 2px solid rgba(240,211,141,.86);
  border-radius: 0;
  box-shadow: none;
  color: #fffaf2;
  font-size: clamp(23px,6vw,31px);
  height: 62px !important;
  max-width: 218px;
  min-height: 62px !important;
  padding: 0 4px;
  width: 100%;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-field input::placeholder { color: rgba(255,250,242,.48); }
html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-field input:focus {
  border-bottom-color: #fff0b4;
  box-shadow: 0 5px 12px -9px rgba(255,240,180,.95);
  outline: 0;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-field .ke-opening-error {
  color: #ffe3de !important;
  min-height: 18px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-field .ke-opening-name-landing {
  font-size: clamp(18px,4.8vw,23px);
  min-height: 28px;
}

/* Meet keeps the semantic reading order visible: heading, Flame, chosen name. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-meet-hex .ke-opening-meet-name {
  color: #f0d38d !important;
  font: 600 clamp(22px,5vw,30px)/1.05 'Playfair Display',serif;
  margin: 0;
  max-width: 90%;
  text-wrap: balance;
}

/* Legacy tier-gallery rules remain for reduced-motion fallbacks and older
   cached markup. The current story uses one synchronized transparent film. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-tier-gallery {
  height: clamp(260px,46dvh,520px);
  left: 50%;
  overflow: visible;
  pointer-events: none;
  position: absolute;
  top: 43%;
  transform: translate(-50%,-50%);
  width: min(82vw,540px);
  z-index: 5;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-tier {
  align-items: center;
  display: flex;
  inset: 0;
  justify-content: center;
  opacity: 0;
  overflow: visible;
  position: absolute;
  transform: translateY(14px) scale(var(--ke-opening-tier-scale,1));
  transform-origin: 50% 68%;
  transition: opacity .78s ease,transform 1.05s cubic-bezier(.16,1,.3,1),visibility 0s .78s;
  visibility: hidden;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-tier.is-active {
  opacity: 1;
  transform: translateY(0) scale(var(--ke-opening-tier-scale,1));
  transition-delay: 0s,0s,0s;
  visibility: visible;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-tier video,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-tier img {
  background: transparent;
  display: block;
  height: 100%;
  max-height: none;
  max-width: none;
  object-fit: contain;
  overflow: visible;
  width: 100%;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-tier > img { display: none; }
html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-tier.is-media-fallback > video { display: none; }
html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-tier.is-media-fallback > img { display: block; }

html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-flame-media,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-flame-fallback {
  transition: none;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-stage:not([data-opening-story-scene="brand"]) .ke-opening-story-flame-media,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-stage:not([data-opening-story-scene="brand"]) .ke-opening-story-flame-fallback {
  filter: none;
}

@media (max-height: 620px) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-tier-gallery {
    height: clamp(220px,43dvh,360px);
    top: 41%;
  }
}

@media (max-width: 350px) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-field {
    width: min(270px,calc(100vw - 32px));
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-field input {
    font-size: 22px;
    height: 56px !important;
    min-height: 56px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.ke-rebrand-mode #ke-opening-flow,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-screen,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-hex,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-answer,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-reminder-circle,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-recap-circle,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-name-field {
    animation: none !important;
    scroll-behavior: auto !important;
    transition: none !important;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-bloom-hex,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-bloom-answer,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-reminder-circle,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] .ke-opening-recap-circle {
    opacity: 1 !important;
    transform: translate(-50%,-50%) !important;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-tier,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-tier.is-active,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-flame-media,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-flame-fallback {
    transition: none !important;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-tier > video { display: none !important; }
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-story-tier.is-active > img {
    display: block !important;
    opacity: 1 !important;
  }
}

/* Approved first-check-in and Journal handoff ----------------------------
   These scenes use the same gold-and-jewel language as the Bloom system,
   but let the screen own vertical scrolling. There are no nested, clipped
   panes around the emotion choices or the long reflection copy. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-question-actions {
  animation: keOpeningActionDockIn .52s cubic-bezier(.22,.8,.24,1) both;
  background: linear-gradient(180deg, transparent, rgba(7,24,31,.96) 34%);
  bottom: 0;
  box-sizing: border-box;
  margin: -64px auto 0;
  max-width: 430px;
  padding: 88px 18px max(22px,env(safe-area-inset-bottom));
  pointer-events: none;
  position: sticky;
  text-align: center;
  width: 100%;
  z-index: 8;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-question-multi-next {
  min-width: 0;
  pointer-events: auto;
  width: min(100%,390px);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-question-multi-next:not(:disabled) {
  box-shadow: 0 14px 34px rgba(0,0,0,.35),0 0 28px rgba(215,181,109,.24),inset 0 1px rgba(255,255,255,.48);
}

@keyframes keOpeningActionDockIn {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-screen.is-checkin-emotion {
  align-items: stretch;
  display: block;
  min-height: 100dvh;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  padding: 0;
  scrollbar-color: rgba(215,181,109,.58) rgba(8,23,30,.32);
}

html.ke-rebrand-mode #ke-opening-flow .is-checkin-emotion .ke-opening-question-header {
  background: linear-gradient(180deg,rgba(8,25,32,.99) 0%,rgba(8,25,32,.94) 78%,transparent 100%);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-checkin-emotion-main {
  box-sizing: border-box;
  margin: 0 auto;
  max-width: 760px;
  min-height: calc(100dvh - 74px);
  padding: 12px max(14px,env(safe-area-inset-right)) max(34px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
  width: 100%;
}

html.ke-rebrand-mode #ke-opening-flow .is-checkin-emotion .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="cascade"] {
  height: var(--ke-opening-content-height) !important;
  max-width: 430px;
  min-height: var(--ke-opening-content-height);
  overflow: visible;
  overscroll-behavior: auto;
}

html.ke-rebrand-mode #ke-opening-flow .is-checkin-emotion .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="cascade"]::after {
  display: none;
}

html.ke-rebrand-mode #ke-opening-flow .is-checkin-emotion .ke-opening-checkin-emotion-hex h1 {
  font-size: clamp(25px,6.8vw,38px) !important;
  max-width: 88%;
}

html.ke-rebrand-mode #ke-opening-flow .is-checkin-emotion .ke-opening-checkin-emotions .ke-opening-bloom-answer {
  box-shadow: none;
  min-width: 0;
  overflow: visible;
}

html.ke-rebrand-mode #ke-opening-flow .is-checkin-emotion .ke-opening-checkin-emotions .ke-opening-bloom-answer > strong {
  font-size: clamp(15px,4vw,20px) !important;
  line-height: 1.08 !important;
  max-width: 84% !important;
}

html.ke-rebrand-mode #ke-opening-flow .is-checkin-emotion .ke-opening-checkin-confirmation {
  margin-top: 6px;
  max-width: 430px;
  padding-bottom: max(18px,env(safe-area-inset-bottom));
}

/* Spark rewards are brief, full-screen acknowledgements. The comet is the
   sole bright subject; the surface deliberately avoids decorative sparkles. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-screen.is-onboarding-spark {
  align-items: stretch;
  background:
    radial-gradient(circle at 50% 43%,rgba(132,57,57,.54),transparent 25rem),
    radial-gradient(circle at 50% 45%,rgba(215,181,109,.15),transparent 38rem),
    linear-gradient(180deg,#0d252e 0%,#081a21 58%,#06151b 100%);
  display: block;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-main {
  box-sizing: border-box;
  justify-content: flex-end;
  margin: 0 auto;
  min-height: 100dvh;
  padding: 0 max(22px,env(safe-area-inset-right)) max(38px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));
  position: relative;
  width: min(100%,760px);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-film {
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  position: absolute;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-film::after {
  background: linear-gradient(180deg,transparent 48%,rgba(4,20,27,.26) 67%,#06151b 96%);
  content: '';
  inset: 0;
  position: absolute;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-film video {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-copy {
  position: relative;
  text-shadow: 0 2px 18px rgba(0,0,0,.72);
  z-index: 1;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-reward {
  align-items: center;
  animation: keOpeningSparkRewardRise .88s cubic-bezier(.16,1,.3,1) both;
  aspect-ratio: 1;
  background:
    radial-gradient(circle at 37% 23%,rgba(255,255,255,.15),transparent 25%),
    radial-gradient(circle at 50% 58%,#7d3349 0%,#541d31 58%,#260b17 100%);
  border: 3px solid #e0ba65;
  border-radius: 50%;
  box-shadow:
    inset 0 0 0 4px rgba(8,23,29,.45),
    0 24px 58px rgba(0,0,0,.42),
    0 0 54px rgba(215,181,109,.32);
  display: flex;
  justify-content: center;
  margin: 0 auto 30px;
  width: clamp(210px,34vw,292px);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-reward .ke-spark-comet-mark {
  animation: keOpeningSparkRewardBreathe 1.28s .48s ease-in-out infinite;
  filter: drop-shadow(0 0 17px rgba(255,215,113,.62));
  height: 64%;
  object-fit: contain;
  width: 64%;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-main > span,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-copy > span,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-thinking-main > span,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-summary > span {
  color: #e7c87e;
  display: block;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .14em;
  margin-bottom: 12px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-main h1 {
  font-size: clamp(42px,8vw,78px);
  margin: 0;
  max-width: 700px;
  text-wrap: balance;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-main > p,
html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-copy > p {
  color: rgba(255,250,242,.78) !important;
  font: 500 clamp(18px,3vw,24px)/1.42 'Cormorant Garamond',serif;
  margin: 18px auto 0;
  max-width: 560px;
}

@media (prefers-reduced-motion: reduce) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-film video {
    display: none;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-film {
    background: #041b26 url('/app/images/ke-flame-kindled-poster.png') center/auto 48% no-repeat;
  }
}

@keyframes keOpeningSparkRewardRise {
  0% { filter: blur(8px); opacity: 0; transform: translateY(34px) scale(.54); }
  68% { filter: blur(0); opacity: 1; transform: translateY(-5px) scale(1.035); }
  100% { filter: blur(0); opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes keOpeningSparkRewardBreathe {
  0%,100% { transform: translateY(1px) scale(.96); }
  50% { transform: translateY(-3px) scale(1.045); }
}

/* Journal thinking is a calm waiting jewel. It can grow if an error or retry
   appears, so status text and the native button are never clipped. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-screen.is-journal-thinking {
  align-items: stretch;
  background:
    radial-gradient(circle at 50% 44%,rgba(109,41,66,.34),transparent 34rem),
    linear-gradient(180deg,#0d252e,#06171d);
  display: block;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-thinking-main {
  align-items: center;
  aspect-ratio: 1;
  background:
    radial-gradient(circle at 35% 22%,rgba(255,255,255,.12),transparent 25%) padding-box,
    radial-gradient(circle at 50% 58%,#743047,#4b192c 62%,#220a14 100%) padding-box,
    conic-gradient(from 26deg,#fff0b6,#b77d2d 18%,#f0ce78 35%,#79501a 54%,#d4a44d 74%,#fff0b6) border-box;
  border: 3px solid transparent;
  border-radius: 50%;
  box-shadow: inset 0 0 0 4px rgba(8,22,28,.5),0 28px 70px rgba(0,0,0,.43),0 0 46px rgba(215,181,109,.18);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: max(36px,env(safe-area-inset-top)) auto max(42px,env(safe-area-inset-bottom));
  min-height: min(88vw,520px);
  overflow: visible;
  padding: clamp(44px,9vw,78px);
  text-align: center;
  width: min(520px,calc(100vw - 36px));
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-thinking-flame {
  filter: drop-shadow(0 0 26px rgba(239,192,68,.64));
  height: clamp(108px,20vw,154px);
  margin: 0 auto 20px;
  overflow: visible;
  width: clamp(82px,15vw,116px);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-thinking-flame svg {
  animation: keOpeningJournalListen 1.8s ease-in-out infinite;
  height: 100%;
  overflow: visible;
  transform-origin: 50% 82%;
  width: 100%;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-thinking-main h1 {
  font-size: clamp(34px,6vw,54px);
  line-height: 1.02;
  margin: 0;
  text-wrap: balance;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-thinking-main > p:not(.ke-opening-error) {
  color: rgba(255,250,242,.76) !important;
  font: 500 clamp(17px,2.8vw,22px)/1.4 'Cormorant Garamond',serif;
  margin: 18px auto 0;
  max-width: 390px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-thinking-main .ke-opening-error {
  margin: 12px auto 0;
  max-width: 390px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-thinking-main .ke-opening-primary {
  margin-top: 14px;
}

@keyframes keOpeningJournalListen {
  0%,100% { filter: brightness(.92); transform: scale(.94) rotate(-.6deg); }
  50% { filter: brightness(1.12); transform: scale(1.055) rotate(.7deg); }
}

/* The Journal entry opens from a circle into a readable page-shaped jewel.
   Karamo teal appears only on his response card, making authorship instantly
   clear without changing the semantic order of the content. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-screen.is-journal-reflection {
  align-items: stretch;
  background:
    radial-gradient(circle at 50% 14%,rgba(109,41,66,.28),transparent 32rem),
    linear-gradient(180deg,#0d252e 0%,#081b22 54%,#06151b 100%);
  display: block;
  min-height: 100dvh;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  padding: 0;
  scrollbar-color: rgba(215,181,109,.58) rgba(8,23,30,.32);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-reflection-main {
  box-sizing: border-box;
  display: grid;
  gap: clamp(22px,4vw,34px);
  margin: 0 auto;
  max-width: 860px;
  padding: max(38px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(48px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));
  width: 100%;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-summary {
  animation: keOpeningJournalCircleOpen .86s cubic-bezier(.16,1,.3,1) both;
  background:
    radial-gradient(circle at 34% 18%,rgba(255,255,255,.11),transparent 24%) padding-box,
    linear-gradient(150deg,#713047 0%,#4d1b2e 58%,#260c18 100%) padding-box,
    conic-gradient(from 28deg,#fff0b6,#b57b2c 18%,#f2d180 36%,#775019 53%,#d3a24c 74%,#fff0b6) border-box;
  border: 3px solid transparent;
  border-radius: clamp(78px,20vw,190px);
  box-shadow: inset 0 0 0 4px rgba(8,22,28,.46),0 28px 72px rgba(0,0,0,.4),0 0 44px rgba(215,181,109,.17);
  box-sizing: border-box;
  margin: 0 auto;
  min-height: clamp(390px,56vw,520px);
  overflow: visible;
  padding: clamp(58px,10vw,96px) clamp(34px,9vw,86px);
  text-align: center;
  width: min(100%,720px);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-summary h1 {
  font-size: clamp(34px,6.2vw,60px);
  line-height: 1.02;
  margin: 0 auto 24px;
  max-width: 620px;
  text-wrap: balance;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-summary > p {
  color: rgba(255,250,242,.86) !important;
  font: 500 clamp(18px,2.8vw,23px)/1.55 'Cormorant Garamond',serif;
  margin: 0 auto;
  max-width: 610px;
  overflow-wrap: anywhere;
  text-align: left;
  white-space: normal;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-karamo-reflection {
  animation: keOpeningKaramoReflectionIn .72s .24s cubic-bezier(.16,1,.3,1) both;
  background:
    radial-gradient(circle at 22% 8%,rgba(255,255,255,.11),transparent 29%),
    linear-gradient(145deg,#1f5958 0%,#123e43 48%,#0b2931 100%);
  border: 2px solid #79c7bd;
  border-radius: clamp(38px,8vw,74px);
  box-shadow: inset 0 0 0 3px rgba(6,23,29,.38),0 26px 64px rgba(0,0,0,.38),0 0 34px rgba(121,199,189,.13);
  box-sizing: border-box;
  color: #f7fffc;
  margin: 0 auto;
  overflow: visible;
  padding: clamp(38px,7vw,64px);
  position: relative;
  width: min(100%,720px);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-reflection-flame {
  align-items: center;
  background: radial-gradient(circle at 50% 56%,rgba(121,199,189,.2),transparent 68%);
  border: 1px solid rgba(162,225,216,.52);
  border-radius: 50%;
  display: flex;
  height: 112px;
  justify-content: center;
  margin: -82px auto 20px;
  overflow: visible;
  width: 112px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-reflection-flame svg {
  filter: drop-shadow(0 0 20px rgba(239,192,68,.55));
  height: 90px;
  overflow: visible;
  width: 68px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-karamo-reflection h2 {
  color: #f7fffc !important;
  font-size: clamp(30px,5vw,48px);
  line-height: 1.05;
  margin: 0 0 22px;
  text-align: center;
  text-wrap: balance;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-karamo-reflection > p {
  color: rgba(247,255,252,.88) !important;
  font: 500 clamp(18px,2.8vw,22px)/1.52 'Cormorant Garamond',serif;
  margin: 0 auto 16px;
  max-width: 610px;
  overflow-wrap: anywhere;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-karamo-reflection > strong {
  background: rgba(4,25,30,.3);
  border: 1px solid rgba(162,225,216,.3);
  border-radius: 28px;
  color: #fff0b6;
  display: block;
  font: 600 clamp(21px,3.2vw,28px)/1.35 'Playfair Display',serif;
  margin: 26px auto 18px;
  max-width: 620px;
  padding: clamp(20px,4vw,30px);
  text-wrap: balance;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-karamo-reflection > small {
  color: rgba(222,245,240,.65);
  display: block;
  font-size: 10px;
  line-height: 1.48;
  margin: 0 auto;
  max-width: 600px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-reflection-main > .ke-opening-primary {
  animation: keOpeningKaramoReflectionIn .58s .46s cubic-bezier(.16,1,.3,1) both;
  justify-self: center;
  min-width: 230px;
}

@keyframes keOpeningJournalCircleOpen {
  from { border-radius: 50%; filter: blur(5px); opacity: 0; transform: translateY(24px) scale(.62); }
  to { border-radius: clamp(78px,20vw,190px); filter: blur(0); opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes keOpeningKaramoReflectionIn {
  from { opacity: 0; transform: translateY(28px) scale(.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 560px) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-question-actions {
    padding-inline: 12px;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-thinking-main {
    border-radius: clamp(62px,24vw,120px);
    min-height: min(100vw,440px);
    padding: 44px 28px;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-summary {
    border-radius: clamp(56px,19vw,92px);
    min-height: 0;
    padding: 48px 28px;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-summary > p {
    font-size: 18px;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-karamo-reflection {
    border-radius: 42px;
    margin-top: 34px;
    padding: 48px 27px 34px;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-reflection-flame {
    height: 96px;
    margin-top: -82px;
    width: 96px;
  }
}

@media (max-height: 620px) and (orientation: landscape) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-main {
    min-height: 520px;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-reward {
    width: 190px;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-thinking-main {
    aspect-ratio: auto;
    border-radius: 86px;
    min-height: 430px;
    width: min(620px,calc(100vw - 54px));
  }
}

@media (prefers-reduced-motion: reduce) {
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-question-actions,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-reward,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-spark-reward .ke-spark-comet-mark,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-thinking-flame svg,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-summary,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-karamo-reflection,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-journal-reflection-main > .ke-opening-primary {
    animation: none !important;
    filter: none;
    opacity: 1;
    transform: none;
    transition: none !important;
  }

  html.ke-rebrand-mode #ke-opening-flow .ke-opening-screen.is-checkin-emotion,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-screen.is-onboarding-spark,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-screen.is-journal-thinking,
  html.ke-rebrand-mode #ke-opening-flow .ke-opening-screen.is-journal-reflection {
    scroll-behavior: auto !important;
  }
}

/* Final cascade: keep the approved equal-sided geometry above every legacy
   responsive layer in this stylesheet. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-hex {
  aspect-ratio: .8660254 !important;
  max-width: none !important;
  width: min(300px,calc(100vw - 40px)) !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"] > .ke-opening-bloom-hex {
  aspect-ratio: .8660254 !important;
  width: var(--ke-opening-core-size,min(300px,calc(100vw - 40px))) !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="column"] {
  height: min(700px,calc(100dvh - 132px));
  overflow-x: hidden;
  overflow-y: auto;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="column"]::after {
  content: "";
  display: block;
  height: var(--ke-opening-content-height);
  width: 1px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-bloom-stage[data-opening-canonical-bloom="true"][data-opening-bloom-layout="column"] :is(.ke-opening-bloom-answer,.ke-opening-reminder-circle) {
  width: var(--ke-opening-choice-size) !important;
}

/* Morning and Evening share one Bloom so the schedule reads as one daily
   rhythm instead of two separate choices. */
html.ke-rebrand-mode #ke-opening-flow .ke-opening-reminder-circle.is-combined {
  padding: 30px 28px !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reminder-circle.is-combined .ke-opening-reminder-pair {
  display: grid;
  gap: 12px;
  position: relative;
  width: 100%;
  z-index: 2;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reminder-circle.is-combined .ke-opening-reminder-row {
  align-items: center;
  display: grid;
  gap: 7px;
  grid-template-columns: 1fr;
  justify-items: center;
  padding: 2px 0 10px;
  width: 100%;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reminder-circle.is-combined .ke-opening-reminder-row + .ke-opening-reminder-row {
  border-top: 1px solid rgba(255,238,190,.34);
  padding: 12px 0 2px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reminder-circle.is-combined .ke-opening-reminder-row label {
  cursor: default;
  display: block;
  max-width: 100% !important;
  text-align: center;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reminder-circle.is-combined .ke-opening-reminder-row label strong {
  color: #fff;
  display: block;
  font: 600 clamp(17px,4.8vw,21px)/1 'Playfair Display',serif;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reminder-circle.is-combined .ke-opening-reminder-row label small {
  color: rgba(255,250,242,.72);
  display: block;
  font: 700 clamp(8px,2.35vw,10px)/1.15 'DM Sans',sans-serif;
  margin-top: 3px;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reminder-circle.is-combined .ke-opening-reminder-row input {
  background: #fffaf2;
  border: 2px solid #ead18f;
  border-radius: 13px;
  box-sizing: border-box;
  color: #12252d;
  color-scheme: light;
  font: 800 13px 'DM Sans',sans-serif;
  margin: 0;
  min-height: 43px;
  padding-inline: 9px;
  width: min(190px,92%);
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reflection-hex {
  aspect-ratio: .8660254 !important;
  width: min(300px,calc(100vw - 40px)) !important;
}

html.ke-rebrand-mode #ke-opening-flow :is(.ke-opening-journal-summary,.ke-opening-karamo-reflection).ke-opening-reflection-circle {
  aspect-ratio: 1 !important;
  border: 0 !important;
  border-radius: 50% !important;
  margin: 0 auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
  padding: 5px !important;
  width: min(100%,720px) !important;
}

html.ke-rebrand-mode #ke-opening-flow .ke-opening-reflection-circle .ke-opening-reflection-paper {
  border-radius: 50% !important;
  height: 100% !important;
  overflow-y: auto !important;
}
