/* ==========================================================================
   jaya one piece - mobile canvas stylesheet
   File: css/palette-mobile-16b4d8.css
   Design: slate/silver two-tone, near-square tool feel, compact square
   game directory, question-driven modules, slide-in menu + card lift.
   All class names and custom properties use the ui4d87e- prefix.
   ========================================================================== */

/* ----- design tokens --------------------------------------------------- */
:root {
  --ui4d87e-ink: #2c3e50;          /* base dark background */
  --ui4d87e-ink-deep: #22303f;     /* deeper panel tone */
  --ui4d87e-ink-raise: #34495e;    /* raised surface */
  --ui4d87e-ink-high: #3d566e;     /* hovered surface */
  --ui4d87e-line: #46617a;         /* hairline borders */
  --ui4d87e-silver: #c0c0c0;       /* base light */
  --ui4d87e-silver-bright: #e9edf1;/* headings */
  --ui4d87e-silver-dim: #9fabb6;   /* secondary text */
  --ui4d87e-page-gap: 12px;
  --ui4d87e-topbar-h: 62px;
  --ui4d87e-bnav-h: 64px;
  --ui4d87e-font-body: "Noto Sans Bengali", "Hind Siliguri", system-ui, sans-serif;
  --ui4d87e-font-display: "Hind Siliguri", "Noto Sans Bengali", system-ui, sans-serif;
}

/* ----- reset ------------------------------------------------------------ */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: #1a2530;
  color: var(--ui4d87e-silver);
  font-family: var(--ui4d87e-font-body);
  font-size: 14px;
  line-height: 1.75;
  overflow-x: hidden;
}

img { max-width: 100%; display: block; border-style: none; }

button {
  font-family: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

a { color: var(--ui4d87e-silver-bright); text-decoration: none; }
a:hover, a:focus-visible { text-decoration: underline; }

:focus-visible {
  outline: 2px solid var(--ui4d87e-silver);
  outline-offset: 2px;
  border-radius: 2px;
}

h1, h2, h3, h4, p, ol, ul, dl, dd, figure { margin: 0; }
ol, ul { padding: 0; list-style: none; }

/* ----- phone canvas ----------------------------------------------------- */
.ui4d87e-canvas {
  position: relative;
  width: 100%;
  max-width: 430px;
  margin: 0 auto;
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--ui4d87e-ink);
  border-left: 1px solid var(--ui4d87e-line);
  border-right: 1px solid var(--ui4d87e-line);
  overflow-x: hidden;
}

/* ----- fixed top action bar --------------------------------------------- */
.ui4d87e-topbar {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 430px;
  height: var(--ui4d87e-topbar-h);
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  background: var(--ui4d87e-ink-deep);
  border-bottom: 1px solid var(--ui4d87e-line);
  z-index: 70;
}

.ui4d87e-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1 1 auto;
}

.ui4d87e-brand img {
  width: 36px;
  height: 36px;
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  object-fit: cover;
  flex: 0 0 auto;
  background: var(--ui4d87e-ink-raise);
}

.ui4d87e-brand-name {
  font-family: var(--ui4d87e-font-display);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: .01em;
  color: var(--ui4d87e-silver-bright);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ui4d87e-acts {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
}

/* compact dual-button CTA group */
.ui4d87e-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 36px;
  padding: 0 12px;
  border-radius: 3px;
  font-family: var(--ui4d87e-font-display);
  font-weight: 700;
  font-size: 12.5px;
  line-height: 1;
  letter-spacing: .01em;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease,
    transform .12s ease;
}

.ui4d87e-btn:active { transform: translateY(1px); }

.ui4d87e-btn--solid {
  background: var(--ui4d87e-silver);
  color: var(--ui4d87e-ink-deep);
}
.ui4d87e-btn--solid:hover,
.ui4d87e-btn--solid:focus-visible {
  background: var(--ui4d87e-silver-bright);
  text-decoration: none;
}

.ui4d87e-btn--ghost {
  border: 1px solid var(--ui4d87e-line);
  color: var(--ui4d87e-silver);
  background: transparent;
}
.ui4d87e-btn--ghost:hover,
.ui4d87e-btn--ghost:focus-visible {
  border-color: var(--ui4d87e-silver);
  color: var(--ui4d87e-silver-bright);
  text-decoration: none;
}

.ui4d87e-btn--mini { padding: 0 10px; min-height: 34px; font-size: 12px; }

.ui4d87e-burger {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  color: var(--ui4d87e-silver);
}
.ui4d87e-burger:hover { border-color: var(--ui4d87e-silver); color: var(--ui4d87e-silver-bright); }

.ui4d87e-ico { width: 18px; height: 18px; flex: 0 0 auto; }
.ui4d87e-ico--sm { width: 15px; height: 15px; }
.ui4d87e-ico--lg { width: 22px; height: 22px; }

/* ----- full-height slide-in menu layer ---------------------------------- */
.ui4d87e-scrim {
  position: fixed;
  inset: 0;
  background: rgba(14, 20, 28, .68);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
  z-index: 60;
}
.ui4d87e-scrim.is-on { opacity: 1; pointer-events: auto; }

.ui4d87e-menu {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100%;
  max-width: 430px;
  transform: translateX(-50%);
  pointer-events: none;
  z-index: 65;
}

.ui4d87e-menu-panel {
  pointer-events: auto;
  width: min(84%, 330px);
  height: 100%;
  overflow-y: auto;
  background: var(--ui4d87e-ink-deep);
  border-right: 1px solid var(--ui4d87e-line);
  transform: translateX(-102%);
  transition: transform .28s cubic-bezier(.32, .72, .28, 1);
}

.ui4d87e-menu.is-open .ui4d87e-menu-panel { transform: translateX(0); }

.ui4d87e-menu-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 14px 12px;
  border-bottom: 1px solid var(--ui4d87e-line);
}

.ui4d87e-menu-head img {
  width: 30px;
  height: 30px;
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  object-fit: cover;
}

.ui4d87e-menu-title {
  font-family: var(--ui4d87e-font-display);
  font-weight: 700;
  font-size: 14.5px;
  color: var(--ui4d87e-silver-bright);
}

.ui4d87e-menu-close {
  margin-left: auto;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  color: var(--ui4d87e-silver);
}

.ui4d87e-menu-group { padding: 14px 14px 4px; }

.ui4d87e-menu-cap {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ui4d87e-silver-dim);
  margin-bottom: 6px;
}

.ui4d87e-menu-link {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 0 8px;
  margin: 0 0 4px;
  border: 1px solid transparent;
  border-radius: 3px;
  color: var(--ui4d87e-silver);
  font-size: 13.5px;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}
.ui4d87e-menu-link:hover,
.ui4d87e-menu-link:focus-visible {
  background: var(--ui4d87e-ink-raise);
  border-color: var(--ui4d87e-line);
  color: var(--ui4d87e-silver-bright);
  text-decoration: none;
}
.ui4d87e-menu-link .ui4d87e-ico { color: var(--ui4d87e-silver-dim); }
.ui4d87e-menu-link:hover .ui4d87e-ico { color: var(--ui4d87e-silver); }

.ui4d87e-menu-cta {
  padding: 16px 14px 26px;
  border-top: 1px solid var(--ui4d87e-line);
  margin-top: 12px;
  display: flex;
  gap: 8px;
}
.ui4d87e-menu-cta .ui4d87e-btn { flex: 1; min-height: 42px; }

/* ----- page body spacing ------------------------------------------------ */
.ui4d87e-main {
  padding: calc(var(--ui4d87e-topbar-h) + 12px) var(--ui4d87e-page-gap)
    calc(var(--ui4d87e-bnav-h) + 30px);
}

.ui4d87e-wrap { max-width: 430px; margin: 0 auto; }

/* ----- hero + carousel --------------------------------------------------- */
.ui4d87e-hero { margin-bottom: 18px; }

.ui4d87e-h1 {
  font-family: var(--ui4d87e-font-display);
  font-size: 24px;
  line-height: 1.32;
  font-weight: 700;
  color: var(--ui4d87e-silver-bright);
  margin-bottom: 8px;
}

.ui4d87e-kicker {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ui4d87e-ink-deep);
  background: var(--ui4d87e-silver);
  padding: 3px 8px;
  border-radius: 2px;
  margin-bottom: 10px;
}

.ui4d87e-lead {
  color: var(--ui4d87e-silver);
  font-size: 13.5px;
  margin-bottom: 14px;
}

.ui4d87e-hero-cta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.ui4d87e-hero-cta .ui4d87e-btn { min-height: 42px; flex: 1 1 auto; }

.ui4d87e-carousel {
  position: relative;
  border: 1px solid var(--ui4d87e-line);
  border-radius: 4px;
  overflow: hidden;
  background: var(--ui4d87e-ink-deep);
}

.ui4d87e-slide {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 2 / 1;
  opacity: 0;
  position: absolute;
  inset: 0;
  transition: opacity .55s ease;
  text-align: left;
}
.ui4d87e-slide.is-on { opacity: 1; position: relative; }

.ui4d87e-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ui4d87e-slide-cap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 26px 12px 10px;
  background: linear-gradient(180deg, rgba(34, 48, 63, 0) 0%, rgba(24, 34, 45, .92) 78%);
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: space-between;
}

.ui4d87e-slide-cap strong {
  display: block;
  font-family: var(--ui4d87e-font-display);
  font-size: 13px;
  line-height: 1.45;
  color: var(--ui4d87e-silver-bright);
  font-weight: 700;
}

.ui4d87e-slide-cap span {
  display: block;
  font-size: 11px;
  color: var(--ui4d87e-silver);
}

.ui4d87e-slide-go {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 0 12px;
  background: var(--ui4d87e-silver);
  color: var(--ui4d87e-ink-deep);
  font-family: var(--ui4d87e-font-display);
  font-weight: 700;
  font-size: 12px;
  border-radius: 3px;
}

.ui4d87e-dots {
  position: absolute;
  right: 10px;
  bottom: 8px;
  display: flex;
  gap: 2px;
  z-index: 2;
}

.ui4d87e-dot {
  min-width: 44px;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ui4d87e-dot::before {
  content: "";
  width: 18px;
  height: 4px;
  border-radius: 2px;
  background: var(--ui4d87e-silver-dim);
  transition: background-color .2s ease, width .2s ease;
}
.ui4d87e-dot.is-on::before {
  width: 26px;
  background: var(--ui4d87e-silver-bright);
}

/* ----- quick answer strip ------------------------------------------------ */
.ui4d87e-answer {
  border: 1px solid var(--ui4d87e-line);
  border-left: 3px solid var(--ui4d87e-silver);
  border-radius: 3px;
  background: var(--ui4d87e-ink-deep);
  padding: 12px;
  margin-bottom: 22px;
}

.ui4d87e-answer p + p { margin-top: 8px; }

.ui4d87e-answer-title {
  font-family: var(--ui4d87e-font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ui4d87e-silver-bright);
  margin-bottom: 4px;
}

/* ----- section headings (tool-marker style) ------------------------------ */
.ui4d87e-h2 {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-family: var(--ui4d87e-font-display);
  font-size: 18.5px;
  line-height: 1.4;
  font-weight: 700;
  color: var(--ui4d87e-silver-bright);
  margin-bottom: 10px;
}

.ui4d87e-h2::before {
  content: "";
  flex: 0 0 7px;
  width: 7px;
  height: 7px;
  background: var(--ui4d87e-silver);
  transform: translateY(-2px);
}

.ui4d87e-h3 {
  font-family: var(--ui4d87e-font-display);
  font-size: 15px;
  font-weight: 700;
  color: var(--ui4d87e-silver-bright);
  margin-bottom: 6px;
}

.ui4d87e-mod { margin-bottom: 26px; }
.ui4d87e-mod > p { margin-bottom: 10px; }

.ui4d87e-mod p a { text-decoration: underline; text-underline-offset: 3px; }

/* ----- game directory ----------------------------------------------------- */
.ui4d87e-garea { margin-bottom: 26px; }

.ui4d87e-gsec { margin-bottom: 20px; }

.ui4d87e-ghead {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 6px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--ui4d87e-line);
}

.ui4d87e-ghead .ui4d87e-h3 { margin-bottom: 0; }

.ui4d87e-gcount {
  margin-left: auto;
  flex: 0 0 auto;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--ui4d87e-ink-deep);
  background: var(--ui4d87e-silver-dim);
  padding: 2px 7px;
  border-radius: 2px;
}

.ui4d87e-gdesc {
  font-size: 12.5px;
  color: var(--ui4d87e-silver-dim);
  margin-bottom: 10px;
}

/* compact square-tile game grid: 4 tracks from 320px */
.ui4d87e-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

/* wider phones grow to 5 tracks */
@media (min-width: 400px) {
  .ui4d87e-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

.ui4d87e-gtile {
  display: block;
  width: 100%;
  text-align: center;
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  background: var(--ui4d87e-ink-deep);
  padding: 4px 3px 6px;
  transition: transform .16s ease, border-color .16s ease, background-color .16s ease;
}

.ui4d87e-gtile img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 2px;
  background: var(--ui4d87e-ink-raise);
}

.ui4d87e-gtile span {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  min-height: 2.7em;
  font-size: 10.5px;
  line-height: 1.35;
  color: var(--ui4d87e-silver);
  margin-top: 4px;
  overflow-wrap: anywhere;
}

/* gentle card lift on engage */
.ui4d87e-gtile:hover,
.ui4d87e-gtile:focus-visible {
  transform: translateY(-2px);
  border-color: var(--ui4d87e-silver-dim);
  background: var(--ui4d87e-ink-raise);
}
.ui4d87e-gtile:active { transform: translateY(0); }

/* ----- numbered step list ------------------------------------------------- */
.ui4d87e-steps { counter-reset: ui4d87e-step; }

.ui4d87e-step {
  counter-increment: ui4d87e-step;
  position: relative;
  padding: 0 0 14px 34px;
}

.ui4d87e-step::before {
  content: counter(ui4d87e-step);
  position: absolute;
  left: 0;
  top: 2px;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ui4d87e-ink-raise);
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  color: var(--ui4d87e-silver-bright);
  font-family: var(--ui4d87e-font-display);
  font-size: 12px;
  font-weight: 700;
}

.ui4d87e-step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 12px;
  top: 30px;
  bottom: 2px;
  width: 1px;
  background: var(--ui4d87e-line);
}

.ui4d87e-step strong {
  display: block;
  font-family: var(--ui4d87e-font-display);
  font-size: 13.5px;
  color: var(--ui4d87e-silver-bright);
  margin-bottom: 2px;
}

.ui4d87e-step p { font-size: 12.5px; color: var(--ui4d87e-silver); }

/* ----- play-style comparison rows ------------------------------------------ */
.ui4d87e-styles { display: grid; gap: 8px; }

.ui4d87e-style {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  background: var(--ui4d87e-ink-deep);
}

.ui4d87e-style-tag {
  align-self: start;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  background: var(--ui4d87e-ink-raise);
  color: var(--ui4d87e-silver-bright);
  font-family: var(--ui4d87e-font-display);
  font-size: 11.5px;
  font-weight: 700;
  text-align: center;
  padding: 4px;
}

.ui4d87e-style strong {
  display: block;
  font-family: var(--ui4d87e-font-display);
  font-size: 13px;
  color: var(--ui4d87e-silver-bright);
  margin-bottom: 2px;
}

.ui4d87e-style p { font-size: 12.5px; color: var(--ui4d87e-silver); }

/* ----- feature cell grid ---------------------------------------------------- */
.ui4d87e-feats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.ui4d87e-feat {
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  background: var(--ui4d87e-ink-deep);
  padding: 10px;
}

.ui4d87e-feat-ico {
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  background: var(--ui4d87e-ink-raise);
  color: var(--ui4d87e-silver);
  margin-bottom: 7px;
}

.ui4d87e-feat strong {
  display: block;
  font-family: var(--ui4d87e-font-display);
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--ui4d87e-silver-bright);
  margin-bottom: 3px;
}

.ui4d87e-feat p { font-size: 11.5px; line-height: 1.6; color: var(--ui4d87e-silver-dim); }

/* ----- direct answer (question-driven) blocks ------------------------------- */
.ui4d87e-qas { display: grid; gap: 8px; }

.ui4d87e-qa {
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  background: var(--ui4d87e-ink-deep);
}

.ui4d87e-qa summary {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 10px 12px;
  cursor: pointer;
  font-family: var(--ui4d87e-font-display);
  font-weight: 700;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ui4d87e-silver-bright);
  list-style: none;
}

.ui4d87e-qa summary::-webkit-details-marker { display: none; }

.ui4d87e-qa summary::before {
  content: "+";
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ui4d87e-line);
  border-radius: 2px;
  color: var(--ui4d87e-silver);
  font-size: 13px;
}

.ui4d87e-qa[open] summary::before { content: "\2212"; }

.ui4d87e-qa-body {
  padding: 0 12px 12px 40px;
  font-size: 12.5px;
  color: var(--ui4d87e-silver);
}

.ui4d87e-qa-body a { text-decoration: underline; text-underline-offset: 3px; }

/* ----- extended homepage footer --------------------------------------------- */
.ui4d87e-xfoot {
  margin: 26px 0 0;
  border-top: 2px solid var(--ui4d87e-line);
  padding-top: 18px;
}

.ui4d87e-xfoot-sec { margin-bottom: 20px; }

.ui4d87e-xfoot-cap {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ui4d87e-silver-dim);
  margin-bottom: 8px;
}

/* sectioned directory list with icon + text labels */
.ui4d87e-dir { display: grid; gap: 6px; }

.ui4d87e-dir-link {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 6px 10px;
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  background: var(--ui4d87e-ink-deep);
  color: var(--ui4d87e-silver);
  transition: border-color .16s ease, background-color .16s ease;
}

.ui4d87e-dir-link:hover,
.ui4d87e-dir-link:focus-visible {
  border-color: var(--ui4d87e-silver-dim);
  background: var(--ui4d87e-ink-raise);
  color: var(--ui4d87e-silver-bright);
  text-decoration: none;
}

.ui4d87e-dir-ico {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  background: var(--ui4d87e-ink-raise);
  color: var(--ui4d87e-silver);
}

.ui4d87e-dir-txt { min-width: 0; }

.ui4d87e-dir-txt strong {
  display: block;
  font-family: var(--ui4d87e-font-display);
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--ui4d87e-silver-bright);
}

.ui4d87e-dir-txt span { font-size: 10.5px; color: var(--ui4d87e-silver-dim); }

.ui4d87e-dir-arrow { margin-left: auto; color: var(--ui4d87e-silver-dim); }

.ui4d87e-brandnote { font-size: 12.5px; color: var(--ui4d87e-silver); }

/* five promotion action rows */
.ui4d87e-promos { display: grid; gap: 6px; }

.ui4d87e-promo-item {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  width: 100%;
  padding: 6px 10px;
  border: 1px solid var(--ui4d87e-silver-dim);
  border-radius: 3px;
  background: var(--ui4d87e-ink-raise);
  text-align: left;
  transition: transform .16s ease, border-color .16s ease, background-color .16s ease;
}

.ui4d87e-promo-item:hover,
.ui4d87e-promo-item:focus-visible {
  transform: translateY(-2px);
  border-color: var(--ui4d87e-silver);
  background: var(--ui4d87e-ink-high);
}

.ui4d87e-promo-item strong {
  font-family: var(--ui4d87e-font-display);
  font-size: 12.5px;
  color: var(--ui4d87e-silver-bright);
}

.ui4d87e-promo-item span {
  display: block;
  font-size: 10.5px;
  color: var(--ui4d87e-silver-dim);
}

.ui4d87e-promo-arrow { margin-left: auto; color: var(--ui4d87e-silver); }

/* conditional disclaimer note */
.ui4d87e-note {
  border: 1px dashed var(--ui4d87e-line);
  border-radius: 3px;
  padding: 10px 12px;
  font-size: 11.5px;
  line-height: 1.7;
  color: var(--ui4d87e-silver-dim);
}

.ui4d87e-note strong { color: var(--ui4d87e-silver); }

/* ----- common footer --------------------------------------------------------- */
.ui4d87e-foot {
  border-top: 1px solid var(--ui4d87e-line);
  padding: 12px var(--ui4d87e-page-gap) 14px;
  text-align: center;
  font-size: 11px;
  color: var(--ui4d87e-silver-dim);
}

/* ----- layered bottom navigation bar ------------------------------------------ */
.ui4d87e-bnav {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 430px;
  background: var(--ui4d87e-ink-deep);
  border-top: 1px solid var(--ui4d87e-line);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  padding: 6px 2px calc(6px + env(safe-area-inset-bottom, 0px));
  z-index: 50;
}

/* layered bar: thin top rule above the icon row */
.ui4d87e-bnav::before {
  content: "";
  position: absolute;
  top: -5px;
  left: 18px;
  right: 18px;
  height: 1px;
  background: var(--ui4d87e-line);
}

.ui4d87e-bnav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  min-height: 52px;
  justify-content: center;
  padding: 4px 2px;
  border-radius: 3px;
  color: var(--ui4d87e-silver-dim);
}

/* containerized symbol tile */
.ui4d87e-bnav-ico {
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ui4d87e-line);
  border-radius: 3px;
  background: var(--ui4d87e-ink-raise);
  color: var(--ui4d87e-silver);
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}

/* label reveal micro-interaction */
.ui4d87e-bnav-label {
  font-size: 10px;
  line-height: 1.2;
  letter-spacing: .04em;
  opacity: .66;
  transition: opacity .18s ease, letter-spacing .18s ease, color .18s ease;
}

.ui4d87e-bnav-item:hover .ui4d87e-bnav-label { opacity: 1; }

/* active role: contrast inversion */
.ui4d87e-bnav-item.is-active { color: var(--ui4d87e-silver-bright); }

.ui4d87e-bnav-item.is-active .ui4d87e-bnav-ico {
  background: var(--ui4d87e-silver);
  border-color: var(--ui4d87e-silver);
  color: var(--ui4d87e-ink-deep);
}

.ui4d87e-bnav-item.is-active .ui4d87e-bnav-label {
  opacity: 1;
  letter-spacing: 0;
  color: var(--ui4d87e-silver-bright);
}

/* ----- guide-page additions ------------------------------------------------------ */
.ui4d87e-feat-ico {
  font-family: var(--ui4d87e-font-display);
  font-size: 12px;
  font-weight: 700;
}

.ui4d87e-qa-body strong,
.ui4d87e-qa-body b { color: var(--ui4d87e-silver-bright); }

/* ----- helpers ------------------------------------------------------------------ */
.ui4d87e-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* narrower phones: trim brand name and button labels slightly */
@media (max-width: 359px) {
  .ui4d87e-brand-name { font-size: 14.5px; }
  .ui4d87e-h1 { font-size: 22px; }
  .ui4d87e-h2 { font-size: 17px; }
  .ui4d87e-btn--mini { padding: 0 8px; }
}

/* respect users who prefer less motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}
