/* ==========================================================================
   1xbwt mobile-first stylesheet
   File   : css/palette-mobile-1be501.css
   Prefix : shell50158-
   Canvas : 320-430px phone layout, centered at up to 480px on wide screens
   Visual : humanist headings + utilitarian near-square corners,
            light floating-layer game cards, short list-style rhythm
   ========================================================================== */

:root {
  --shell50158-bg: #2C2C2C;        /* page canvas background */
  --shell50158-surface: #34495E;   /* raised panels */
  --shell50158-deepteal: #004D40;  /* extended footer band */
  --shell50158-slate: #708090;     /* quiet meta text */
  --shell50158-mist: #A9A9A9;      /* secondary body text */
  --shell50158-accent: #4DB6AC;    /* CTA / active marker */
  --shell50158-ink: #E9EEF0;       /* primary readable text */
  --shell50158-panel: #31414F;     /* card / row background */
  --shell50158-line: #3A4D61;      /* hairline borders */
  --shell50158-canvas: 480px;      /* max phone canvas width */
}

* { box-sizing: border-box; }

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

body {
  margin: 0;
  background: #202020;
  color: var(--shell50158-ink);
  font: 15px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

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

h1, h2, h3, h4 {
  font-family: Georgia, "Times New Roman", "Palatino Linotype", serif;
  font-weight: 700;
  line-height: 1.28;
  margin: 0 0 10px;
  color: #F2F5F6;
}

a { color: var(--shell50158-accent); }

:focus-visible {
  outline: 2px solid var(--shell50158-accent);
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   Phone canvas shell — stays centered on desktop, never wider than 480px
   -------------------------------------------------------------------------- */
.shell50158-shell {
  max-width: var(--shell50158-canvas);
  margin: 0 auto;
  min-height: 100vh;
  background: var(--shell50158-bg);
  border-left: 1px solid #151515;
  border-right: 1px solid #151515;
  overflow-x: hidden;
  position: relative;
}

.shell50158-main {
  padding: 0 0 calc(104px + env(safe-area-inset-bottom, 0px));
}

.shell50158-block { padding: 16px 12px; }

.shell50158-h2 {
  font-size: 18.5px;
  border-left: 4px solid var(--shell50158-accent);
  padding-left: 10px;
  margin: 0 0 10px;
}

.shell50158-lead {
  margin: 0 0 12px;
  font-size: 13.5px;
  color: var(--shell50158-mist);
}

.shell50158-lead strong,
.shell50158-answer strong { color: var(--shell50158-ink); }

.shell50158-countchip {
  display: inline-block;
  font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 10.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--shell50158-accent);
  border: 1px solid rgba(77, 182, 172, .45);
  padding: 2px 7px;
  border-radius: 2px;
  margin-left: 8px;
  vertical-align: 2px;
}

/* --------------------------------------------------------------------------
   Fixed top navigation — brand layer + action layer (two stacked rows)
   -------------------------------------------------------------------------- */
.shell50158-topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  background: linear-gradient(180deg, #3A4F66 0%, #33475C 100%);
  border-bottom: 1px solid #23313F;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .38);
}

.shell50158-brandrow {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px 4px;
}

.shell50158-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #F2F5F6;
}

.shell50158-logo {
  height: 32px;
  width: auto;
  max-width: 140px;
}

.shell50158-sitename {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 21px;
  letter-spacing: .02em;
  margin: 0;
  color: #F2F5F6;
}

.shell50158-actionrow {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 12px 10px;
}

/* Square high-contrast CTA buttons */
.shell50158-cta {
  min-height: 44px;
  padding: 0 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: var(--shell50158-accent);
  color: #10312C;
  font: 700 13px/1 -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  letter-spacing: .05em;
  text-transform: uppercase;
  border: 1px solid #35A79B;
  border-radius: 2px;
  cursor: pointer;
  text-decoration: none;
  transition: transform .16s ease, filter .16s ease;
}

.shell50158-cta:active { transform: translateY(-2px); filter: brightness(1.08); }

.shell50158-ghostbtn {
  min-height: 44px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: transparent;
  color: var(--shell50158-ink);
  font: 600 13px/1 -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  letter-spacing: .04em;
  text-transform: uppercase;
  border: 1px solid var(--shell50158-slate);
  border-radius: 2px;
  cursor: pointer;
  text-decoration: none;
  transition: transform .16s ease, border-color .16s ease;
}

.shell50158-ghostbtn:active { transform: translateY(-2px); border-color: var(--shell50158-accent); }

.shell50158-menubtn { margin-left: auto; }
.shell50158-menubtn svg { width: 18px; height: 18px; }

/* --------------------------------------------------------------------------
   Slide-up route sheet (mobile menu) + scrim
   -------------------------------------------------------------------------- */
.shell50158-scrim {
  position: fixed;
  inset: 0;
  background: rgba(10, 12, 13, .62);
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility .25s;
  z-index: 50;
}

.shell50158-scrim.is-on { opacity: 1; visibility: visible; }

.shell50158-sheet {
  position: fixed;
  left: 50%;
  bottom: 0;
  width: min(480px, 100%);
  max-height: 80vh;
  overflow-y: auto;
  transform: translate(-50%, 103%);
  visibility: hidden;
  background: #2E3F52;
  border: 1px solid #43586D;
  border-bottom: none;
  border-radius: 4px 4px 0 0;
  padding: 12px 12px calc(16px + env(safe-area-inset-bottom, 0px));
  z-index: 60;
  transition: transform .3s ease, visibility .3s;
}

.shell50158-sheet.is-open { transform: translate(-50%, 0); visibility: visible; }

.shell50158-sheethead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #3A4D61;
  padding-bottom: 8px;
}

.shell50158-sheethead span {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  color: #F2F5F6;
}

.shell50158-sheetclose {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid var(--shell50158-slate);
  border-radius: 2px;
  color: var(--shell50158-ink);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}

.shell50158-routegroup {
  margin: 14px 0 4px;
  font-size: 10.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--shell50158-slate);
}

.shell50158-route {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 6px 8px;
  color: var(--shell50158-ink);
  font-size: 14px;
  text-decoration: none;
  border-bottom: 1px solid #3A4D61;
  border-left: 3px solid transparent;
  transition: transform .15s ease, color .15s ease;
}

.shell50158-route svg {
  width: 17px;
  height: 17px;
  flex: none;
  color: var(--shell50158-slate);
}

.shell50158-route .shell50158-chev { margin-left: auto; }

.shell50158-route:active { transform: translateY(-2px); color: var(--shell50158-accent); }

.shell50158-route.is-current {
  border-left-color: var(--shell50158-accent);
  color: var(--shell50158-accent);
}

.shell50158-route.is-current svg { color: var(--shell50158-accent); }

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.shell50158-hero { padding: 18px 12px 6px; }

.shell50158-kicker {
  display: inline-block;
  font-size: 10.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--shell50158-accent);
  border: 1px solid rgba(77, 182, 172, .4);
  padding: 3px 8px;
  border-radius: 2px;
  margin-bottom: 10px;
}

.shell50158-hero h1 {
  font-size: 25px;
  margin-bottom: 10px;
}

/* --------------------------------------------------------------------------
   Promo banner carousel — scroll snap track, JS advances it
   -------------------------------------------------------------------------- */
.shell50158-carousel {
  margin: 12px;
  border: 1px solid var(--shell50158-line);
  border-radius: 2px;
  background: var(--shell50158-panel);
  overflow: hidden;
  position: relative;
}

.shell50158-track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.shell50158-track::-webkit-scrollbar { display: none; }

.shell50158-slide {
  flex: 0 0 100%;
  scroll-snap-align: center;
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  color: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.shell50158-slide img {
  width: 100%;
  aspect-ratio: 5 / 2;
  object-fit: cover;
}

.shell50158-slidecap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 26px 12px 10px;
  background: linear-gradient(180deg, rgba(15, 20, 24, 0) 0%, rgba(15, 20, 24, .88) 78%);
  color: #F0F4F5;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.35;
}

.shell50158-slidecap small {
  display: block;
  color: var(--shell50158-accent);
  font-size: 10.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 3px;
  font-weight: 700;
}

.shell50158-dots {
  position: absolute;
  right: 10px;
  bottom: 8px;
  display: flex;
  gap: 6px;
}

.shell50158-dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: none;
  border-radius: 1px;
  background: rgba(233, 238, 240, .38);
  cursor: pointer;
}

.shell50158-dot.is-on { background: var(--shell50158-accent); }

/* --------------------------------------------------------------------------
   Game grids — light floating-layer tiles, 4 cols at 320px, 5 cols 380px+
   -------------------------------------------------------------------------- */
.shell50158-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

@media (min-width: 380px) {
  .shell50158-grid { grid-template-columns: repeat(5, 1fr); }
}

.shell50158-tile {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 5px;
  background: var(--shell50158-panel);
  border: 1px solid #3F5266;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .28);
  color: var(--shell50158-ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.shell50158-tile img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 1px;
  background: #22303C;
}

.shell50158-tile span {
  font-size: 10.5px;
  line-height: 1.3;
  color: var(--shell50158-mist);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.6em;
}

.shell50158-tile:active {
  transform: translateY(-2px);
  border-color: var(--shell50158-accent);
  box-shadow: 0 4px 10px rgba(0, 0, 0, .34);
}

/* --------------------------------------------------------------------------
   Feature rows (scannable label/value pairs)
   -------------------------------------------------------------------------- */
.shell50158-featrow {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2px;
  padding: 10px 12px;
  margin-bottom: 8px;
  background: var(--shell50158-panel);
  border: 1px solid var(--shell50158-line);
  border-left: 3px solid var(--shell50158-accent);
  border-radius: 2px;
}

@media (min-width: 400px) {
  .shell50158-featrow { grid-template-columns: 128px 1fr; gap: 10px; align-items: baseline; }
}

.shell50158-featname {
  font-weight: 700;
  font-size: 13.5px;
  color: #DFE8EC;
}

.shell50158-featval {
  font-size: 13px;
  color: var(--shell50158-mist);
}

/* --------------------------------------------------------------------------
   Comparison panel — dimension + what to check
   -------------------------------------------------------------------------- */
.shell50158-cmp {
  border: 1px solid var(--shell50158-line);
  border-radius: 2px;
  background: var(--shell50158-panel);
  overflow: hidden;
}

.shell50158-cmprow {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 8px;
  padding: 10px;
  border-bottom: 1px solid #35485C;
}

.shell50158-cmprow:last-child { border-bottom: none; }

.shell50158-cmpdim {
  font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--shell50158-accent);
  padding-top: 2px;
}

.shell50158-cmptxt {
  font-size: 13px;
  color: var(--shell50158-mist);
}

/* --------------------------------------------------------------------------
   FAQ list (native details/summary, square rows)
   -------------------------------------------------------------------------- */
.shell50158-faqitem {
  border: 1px solid var(--shell50158-line);
  border-radius: 2px;
  background: var(--shell50158-panel);
  margin-bottom: 8px;
}

.shell50158-faqitem summary {
  list-style: none;
  cursor: pointer;
  padding: 12px;
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  font-size: 14px;
  color: #DFE8EC;
}

.shell50158-faqitem summary::-webkit-details-marker { display: none; }

.shell50158-faqitem summary::before {
  content: "+";
  color: var(--shell50158-accent);
  font-weight: 700;
  font-size: 16px;
  flex: none;
}

.shell50158-faqitem[open] summary::before { content: "\2013"; }

.shell50158-answer {
  padding: 0 12px 12px;
  font-size: 13.5px;
  line-height: 1.62;
  color: var(--shell50158-mist);
}

.shell50158-answer p { margin: 0 0 8px; }
.shell50158-answer p:last-child { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   Requirements checklist
   -------------------------------------------------------------------------- */
.shell50158-req {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--shell50158-line);
  border-radius: 2px;
  background: var(--shell50158-panel);
}

.shell50158-req li {
  position: relative;
  padding: 10px 10px 10px 34px;
  font-size: 13.5px;
  color: var(--shell50158-mist);
  border-bottom: 1px dotted var(--shell50158-line);
}

.shell50158-req li:last-child { border-bottom: none; }

.shell50158-req li::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 13px;
  width: 12px;
  height: 12px;
  border: 2px solid var(--shell50158-accent);
  border-radius: 1px;
}

.shell50158-req li::after {
  content: "";
  position: absolute;
  left: 13px;
  top: 16px;
  width: 6px;
  height: 3px;
  border-left: 2px solid var(--shell50158-accent);
  border-bottom: 2px solid var(--shell50158-accent);
  transform: rotate(-45deg);
}

/* --------------------------------------------------------------------------
   Extended footer (homepage only) — promotions > brand > directory > note
   -------------------------------------------------------------------------- */
.shell50158-extfoot {
  margin-top: 20px;
  padding: 16px 12px 14px;
  background: var(--shell50158-deepteal);
  border-top: 3px solid var(--shell50158-accent);
}

.shell50158-efhead {
  font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #9FD8D2;
  margin: 0 0 10px;
}

.shell50158-efpromo {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 46px;
  margin-bottom: 8px;
  padding: 6px 12px;
  background: rgba(77, 182, 172, .12);
  border: 1px solid rgba(77, 182, 172, .45);
  border-radius: 2px;
  color: #DFF3F1;
  font: 600 13px/1.3 -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  text-decoration: none;
  cursor: pointer;
  transition: transform .15s ease, background .15s ease;
}

.shell50158-efpromo:active {
  transform: translateY(-2px);
  background: rgba(77, 182, 172, .22);
}

.shell50158-efpromo svg { width: 20px; height: 20px; flex: none; color: var(--shell50158-accent); }

.shell50158-efbrand {
  margin: 16px 0 0;
  padding-top: 12px;
  border-top: 1px solid rgba(159, 216, 210, .25);
}

.shell50158-efbrand p {
  margin: 0;
  font-size: 13px;
  line-height: 1.6;
  color: #C9D6D4;
}

.shell50158-efdir {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 12px;
  margin-top: 6px;
}

.shell50158-efdir a {
  display: block;
  padding: 6px 0;
  font-size: 12.5px;
  color: #BFE8E4;
  text-decoration: none;
  border-bottom: 1px dotted rgba(159, 216, 210, .4);
}

.shell50158-efdir a:active { color: var(--shell50158-accent); }

.shell50158-efnote {
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid rgba(159, 216, 210, .25);
  font-size: 11.5px;
  line-height: 1.55;
  color: #9DB8B4;
}

/* --------------------------------------------------------------------------
   Universal footer — 2026 copyright only
   -------------------------------------------------------------------------- */
.shell50158-unifoot {
  padding: 14px 12px 10px;
  border-top: 1px solid var(--shell50158-line);
  text-align: center;
  color: var(--shell50158-slate);
  font-size: 11.5px;
  line-height: 1.5;
}

/* --------------------------------------------------------------------------
   Floating dock bar — 5 roles, linear icons, filled + underline active state
   -------------------------------------------------------------------------- */
.shell50158-dock {
  position: fixed;
  left: 50%;
  bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  width: min(464px, calc(100% - 20px));
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 2px;
  padding: 5px 4px;
  background: rgba(38, 50, 62, .97);
  border: 1px solid #43586D;
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .5);
  z-index: 45;
}

.shell50158-docklink {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-height: 50px;
  padding: 2px 1px;
  color: var(--shell50158-mist);
  background: transparent;
  border: none;
  font: 600 10px/1 -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  letter-spacing: .03em;
  text-decoration: none;
  cursor: pointer;
  border-radius: 3px;
  transition: transform .16s ease, color .16s ease;
}

.shell50158-docklink svg { width: 22px; height: 22px; }

.shell50158-docklink .shell50158-fill {
  fill: transparent;
  transition: fill .18s ease, fill-opacity .18s ease;
}

.shell50158-docklink:active { transform: translateY(-2px); }

.shell50158-docklink.is-active { color: var(--shell50158-accent); }

.shell50158-docklink.is-active .shell50158-fill {
  fill: currentColor;
  fill-opacity: .16;
}

.shell50158-docklink::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 0;
  height: 2px;
  background: var(--shell50158-accent);
  transform: translateX(-50%);
  transition: width .18s ease;
}

.shell50158-docklink.is-active::after { width: 18px; }

/* --------------------------------------------------------------------------
   Motion preference
   -------------------------------------------------------------------------- */
@media (max-width: 340px) {
  .shell50158-actionrow { gap: 5px; padding-left: 8px; padding-right: 8px; }
  .shell50158-cta, .shell50158-ghostbtn { padding-left: 9px; padding-right: 9px; font-size: 11px; }
  .shell50158-hero h1 { font-size: 22px; }
  .shell50158-cmprow { grid-template-columns: 82px 1fr; gap: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  .shell50158-sheet,
  .shell50158-scrim,
  .shell50158-docklink,
  .shell50158-tile,
  .shell50158-cta,
  .shell50158-ghostbtn,
  .shell50158-efpromo,
  .shell50158-route { transition: none; }
}
