/* ==========================================================================
   3u3u pagcor - display-dynamic-aed35e.css
   Mobile-first spec-panel theme for 3u3upagcor.click
   Canvas: 320-430px phone layout, centered on wide screens (max 480px)
   Palette: #20B2AA accent over #333333 base, light text
   Direction: technical headings / low-radius zoned panels / grouped cover
   cards / scenario-branch rhythm / motion reserved for key CTAs
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Design tokens
   -------------------------------------------------------------------------- */
:root {
  --frameed35e-c-bg: #333333;
  --frameed35e-c-deep: #2b2b2b;
  --frameed35e-c-panel: #3a3a3a;
  --frameed35e-c-panel-2: #414141;
  --frameed35e-c-line: rgba(255, 255, 255, 0.13);
  --frameed35e-c-line-strong: rgba(255, 255, 255, 0.24);
  --frameed35e-c-accent: #20b2aa;
  --frameed35e-c-accent-hi: #4bd9cf;
  --frameed35e-c-accent-dim: rgba(32, 178, 170, 0.14);
  --frameed35e-c-accent-line: rgba(32, 178, 170, 0.5);
  --frameed35e-c-text: #ecf4f3;
  --frameed35e-c-muted: #a9bab8;
  --frameed35e-c-ink: #0d2a28;
  --frameed35e-r: 3px;
  --frameed35e-r-sm: 2px;
  --frameed35e-max: 480px;
  --frameed35e-dock-h: 62px;
  --frameed35e-top-pad: 96px;
  --frameed35e-f-head: "Bahnschrift", "Segoe UI", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --frameed35e-f-mono: ui-monospace, "Cascadia Mono", "SF Mono", "Roboto Mono", Consolas, monospace;
  --frameed35e-f-body: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* --------------------------------------------------------------------------
   2. Reset and base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

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

body {
  margin: 0;
  background: var(--frameed35e-c-bg);
  color: var(--frameed35e-c-text);
  font-family: var(--frameed35e-f-body);
  font-size: 14px;
  line-height: 1.6;
  overflow-x: hidden;
}

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

h1,
h2,
h3,
p,
ul,
ol,
dl,
dd,
figure {
  margin: 0;
}

ul,
ol {
  padding: 0;
  list-style: none;
}

a {
  color: var(--frameed35e-c-accent-hi);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

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

:focus-visible {
  outline: 2px solid var(--frameed35e-c-accent-hi);
  outline-offset: 2px;
  border-radius: var(--frameed35e-r-sm);
}

/* Wide screens keep the centered phone canvas */
.frameed35e-canvas {
  position: relative;
  max-width: var(--frameed35e-max);
  margin: 0 auto;
  min-height: 100vh;
  background: var(--frameed35e-c-bg);
}

@media (min-width: 481px) {
  .frameed35e-canvas {
    border-left: 1px solid var(--frameed35e-c-line);
    border-right: 1px solid var(--frameed35e-c-line);
    box-shadow: 0 0 32px rgba(0, 0, 0, 0.45);
  }
}

.frameed35e-no-scroll {
  overflow: hidden;
}

/* Skip link */
.frameed35e-skip {
  position: absolute;
  left: 12px;
  top: -48px;
  z-index: 120;
  background: var(--frameed35e-c-accent);
  color: var(--frameed35e-c-ink);
  font-family: var(--frameed35e-f-mono);
  font-size: 12px;
  padding: 10px 14px;
  border-radius: var(--frameed35e-r);
  transition: top 0.15s ease;
}

.frameed35e-skip:focus {
  top: 8px;
  text-decoration: none;
}

/* --------------------------------------------------------------------------
   3. Top bar - centered identity row above an action strip
   -------------------------------------------------------------------------- */
.frameed35e-topbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 100%;
  max-width: var(--frameed35e-max);
  z-index: 90;
  background: linear-gradient(180deg, #383838 0%, #333333 100%);
  border-bottom: 1px solid var(--frameed35e-c-line);
}

.frameed35e-topbar::after {
  content: "";
  display: block;
  height: 2px;
  background: linear-gradient(90deg, var(--frameed35e-c-accent) 0%, rgba(32, 178, 170, 0.15) 55%, var(--frameed35e-c-accent) 100%);
}

.frameed35e-topbar-row1 {
  display: grid;
  grid-template-columns: 48px 1fr 48px;
  align-items: center;
  min-height: 52px;
  padding: 4px 10px 0;
}

.frameed35e-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  color: var(--frameed35e-c-text);
}

.frameed35e-brand:hover {
  text-decoration: none;
}

.frameed35e-brand-logo {
  width: 30px;
  height: 30px;
  border-radius: var(--frameed35e-r-sm);
  border: 1px solid var(--frameed35e-c-accent-line);
  object-fit: cover;
  flex: none;
}

.frameed35e-brand-name {
  font-family: var(--frameed35e-f-head);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.frameed35e-brand-name em {
  font-style: normal;
  color: var(--frameed35e-c-accent-hi);
}

.frameed35e-menu-btn {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r);
  background: var(--frameed35e-c-panel);
  color: var(--frameed35e-c-text);
}

.frameed35e-menu-btn:active {
  border-color: var(--frameed35e-c-accent-line);
}

.frameed35e-topbar-slot {
  display: block;
}

.frameed35e-topbar-row2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 6px 10px 8px;
}

/* --------------------------------------------------------------------------
   4. Buttons - solid primary, outlined secondary
   -------------------------------------------------------------------------- */
.frameed35e-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: var(--frameed35e-r);
  border: 1px solid transparent;
  font-family: var(--frameed35e-f-head);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: background-color 0.12s ease, transform 0.08s ease, border-color 0.12s ease;
}

.frameed35e-btn-primary {
  background: var(--frameed35e-c-accent);
  color: var(--frameed35e-c-ink);
}

.frameed35e-btn-primary:active {
  background: var(--frameed35e-c-accent-hi);
  transform: translateY(1px) scale(0.99);
}

.frameed35e-btn-ghost {
  background: transparent;
  border-color: var(--frameed35e-c-accent-line);
  color: var(--frameed35e-c-accent-hi);
}

.frameed35e-btn-ghost:active {
  background: var(--frameed35e-c-accent-dim);
  transform: translateY(1px);
}

.frameed35e-btn-block {
  width: 100%;
}

.frameed35e-btn-sm {
  min-height: 44px;
  padding: 8px 10px;
  font-size: 13px;
}

/* Inline promo text link inside prose */
.frameed35e-jump {
  color: var(--frameed35e-c-accent-hi);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  padding: 2px 0;
  display: inline;
}

.frameed35e-jump:active {
  color: var(--frameed35e-c-accent);
}

/* --------------------------------------------------------------------------
   5. Full-height menu layer
   -------------------------------------------------------------------------- */
.frameed35e-menu-layer {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 100%;
  max-width: var(--frameed35e-max);
  height: 100vh;
  height: 100dvh;
  z-index: 110;
  background: #2e2e2e;
  border-right: 1px solid var(--frameed35e-c-line);
  transform: translateX(-102%);
  transition: transform 0.24s ease;
  overflow-y: auto;
  visibility: hidden;
}

.frameed35e-menu-layer.frameed35e-menu-open {
  transform: translateX(0);
  visibility: visible;
}

.frameed35e-menu-top {
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  background: #2e2e2e;
  border-bottom: 1px solid var(--frameed35e-c-line);
}

.frameed35e-menu-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--frameed35e-f-head);
  font-weight: 700;
  font-size: 16px;
}

.frameed35e-menu-brand img {
  width: 26px;
  height: 26px;
  border-radius: var(--frameed35e-r-sm);
  border: 1px solid var(--frameed35e-c-accent-line);
}

.frameed35e-menu-close {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r);
  color: var(--frameed35e-c-text);
}

.frameed35e-menu-close:active {
  border-color: var(--frameed35e-c-accent-line);
}

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

.frameed35e-menu-label {
  font-family: var(--frameed35e-f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--frameed35e-c-accent);
  padding: 0 2px 8px;
}

.frameed35e-menu-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r);
  background: var(--frameed35e-c-panel);
  color: var(--frameed35e-c-text);
  font-family: var(--frameed35e-f-head);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  margin-bottom: 6px;
}

.frameed35e-menu-link:active {
  border-color: var(--frameed35e-c-accent-line);
}

.frameed35e-menu-link .frameed35e-ico {
  color: var(--frameed35e-c-accent);
}

.frameed35e-menu-link[aria-current="page"] {
  border-left: 3px solid var(--frameed35e-c-accent);
  background: var(--frameed35e-c-accent-dim);
}

.frameed35e-menu-foot {
  padding: 16px 12px 28px;
  border-top: 1px solid var(--frameed35e-c-line);
  margin-top: 12px;
}

/* --------------------------------------------------------------------------
   6. SVG icon sizing
   -------------------------------------------------------------------------- */
.frameed35e-ico {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
}

.frameed35e-ico-sm {
  width: 16px;
  height: 16px;
}

.frameed35e-sprite {
  display: none;
}

/* --------------------------------------------------------------------------
   7. Main column and hero
   -------------------------------------------------------------------------- */
.frameed35e-main {
  display: block;
  padding: calc(var(--frameed35e-top-pad) + 10px) 0 calc(var(--frameed35e-dock-h) + 34px);
}

.frameed35e-hero {
  margin: 0 12px 14px;
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r);
  background:
    linear-gradient(rgba(32, 178, 170, 0.05) 1px, transparent 1px) 0 0 / 100% 22px,
    linear-gradient(90deg, rgba(32, 178, 170, 0.05) 1px, transparent 1px) 0 0 / 22px 100%,
    linear-gradient(180deg, #3c3c3c, #363636);
  padding: 16px 14px 14px;
}

.frameed35e-kicker {
  font-family: var(--frameed35e-f-mono);
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--frameed35e-c-accent-hi);
  margin-bottom: 8px;
}

.frameed35e-title {
  font-family: var(--frameed35e-f-head);
  font-size: 22px;
  line-height: 1.22;
  font-weight: 700;
  letter-spacing: 0.01em;
  margin-bottom: 10px;
  overflow-wrap: anywhere;
}

.frameed35e-title .frameed35e-title-mark {
  color: var(--frameed35e-c-accent-hi);
}

.frameed35e-hero-sub {
  color: var(--frameed35e-c-muted);
  font-size: 13.5px;
  margin-bottom: 14px;
}

.frameed35e-hero-cta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.frameed35e-hero-note {
  margin-top: 10px;
  font-family: var(--frameed35e-f-mono);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  color: var(--frameed35e-c-muted);
}

/* --------------------------------------------------------------------------
   8. Carousel
   -------------------------------------------------------------------------- */
.frameed35e-carousel {
  position: relative;
  margin: 0 12px 14px;
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r);
  overflow: hidden;
  background: var(--frameed35e-c-deep);
}

.frameed35e-track {
  display: flex;
  transition: transform 0.32s ease;
}

.frameed35e-slide {
  flex: 0 0 100%;
  width: 100%;
  position: relative;
  display: block;
}

.frameed35e-slide img {
  width: 100%;
  height: 168px;
  object-fit: cover;
}

.frameed35e-slide-cap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 26px 12px 10px;
  background: linear-gradient(180deg, rgba(20, 20, 20, 0) 0%, rgba(20, 20, 20, 0.88) 78%);
  color: var(--frameed35e-c-text);
  text-align: left;
  font-family: var(--frameed35e-f-head);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.frameed35e-slide-cap::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 8px;
  border-radius: 1px;
  background: var(--frameed35e-c-accent);
}

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

.frameed35e-dot {
  width: 34px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.frameed35e-dot::after {
  content: "";
  width: 16px;
  height: 4px;
  border-radius: 1px;
  background: rgba(255, 255, 255, 0.35);
  transition: background-color 0.15s ease;
}

.frameed35e-dot.frameed35e-dot-on::after {
  background: var(--frameed35e-c-accent);
}

/* --------------------------------------------------------------------------
   9. Stat strip
   -------------------------------------------------------------------------- */
.frameed35e-statbar {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin: 0 12px 16px;
}

.frameed35e-stat {
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r);
  background: var(--frameed35e-c-panel);
  padding: 8px 4px;
  text-align: center;
  min-width: 0;
}

.frameed35e-stat-n {
  display: block;
  font-family: var(--frameed35e-f-head);
  font-size: 15px;
  font-weight: 700;
  color: var(--frameed35e-c-accent-hi);
  letter-spacing: 0.02em;
}

.frameed35e-stat-t {
  display: block;
  font-family: var(--frameed35e-f-mono);
  font-size: 9px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--frameed35e-c-muted);
  margin-top: 3px;
  line-height: 1.35;
}

/* --------------------------------------------------------------------------
   10. Content section panels
   -------------------------------------------------------------------------- */
.frameed35e-section {
  margin: 0 12px 16px;
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r);
  background: linear-gradient(180deg, #3a3a3a 0%, #363636 100%);
  padding: 14px 14px 16px;
}

.frameed35e-sec-head {
  margin-bottom: 10px;
}

.frameed35e-sec-tag {
  display: block;
  font-family: var(--frameed35e-f-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--frameed35e-c-accent);
  margin-bottom: 6px;
}

.frameed35e-h2 {
  font-family: var(--frameed35e-f-head);
  font-size: 16.5px;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.frameed35e-h3 {
  font-family: var(--frameed35e-f-head);
  font-size: 14px;
  line-height: 1.35;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--frameed35e-c-accent-hi);
  text-transform: uppercase;
  margin: 14px 0 6px;
}

.frameed35e-lead {
  color: var(--frameed35e-c-text);
  font-size: 13.5px;
  margin-bottom: 10px;
}

.frameed35e-lead strong {
  color: var(--frameed35e-c-accent-hi);
}

.frameed35e-p {
  color: var(--frameed35e-c-muted);
  font-size: 13.5px;
  margin-bottom: 10px;
}

.frameed35e-p:last-child {
  margin-bottom: 0;
}

/* Scenario branch rows */
.frameed35e-branches {
  display: grid;
  gap: 8px;
  margin: 10px 0;
}

.frameed35e-branch {
  border: 1px solid var(--frameed35e-c-line);
  border-left: 3px solid var(--frameed35e-c-accent);
  border-radius: var(--frameed35e-r-sm);
  background: var(--frameed35e-c-deep);
  padding: 9px 11px;
}

.frameed35e-branch-if {
  display: block;
  font-family: var(--frameed35e-f-mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--frameed35e-c-accent-hi);
  margin-bottom: 4px;
}

.frameed35e-branch-then {
  color: var(--frameed35e-c-text);
  font-size: 13px;
}

/* Numbered steps */
.frameed35e-steps {
  counter-reset: frameed35e-steps;
  display: grid;
  gap: 8px;
  margin: 10px 0;
}

.frameed35e-steps li {
  counter-increment: frameed35e-steps;
  position: relative;
  padding: 9px 11px 9px 44px;
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r-sm);
  background: var(--frameed35e-c-deep);
  font-size: 13px;
  color: var(--frameed35e-c-text);
}

.frameed35e-steps li::before {
  content: counter(frameed35e-steps, decimal-leading-zero);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--frameed35e-f-mono);
  font-size: 12px;
  font-weight: 700;
  color: var(--frameed35e-c-ink);
  background: var(--frameed35e-c-accent);
  border-radius: var(--frameed35e-r-sm);
  padding: 3px 5px;
}

/* Checklist with CSS-drawn ticks */
.frameed35e-check {
  display: grid;
  gap: 8px;
  margin: 10px 0;
}

.frameed35e-check li {
  position: relative;
  padding: 9px 11px 9px 34px;
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r-sm);
  background: var(--frameed35e-c-deep);
  font-size: 13px;
  color: var(--frameed35e-c-text);
}

.frameed35e-check li::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 14px;
  width: 9px;
  height: 5px;
  border-left: 2px solid var(--frameed35e-c-accent-hi);
  border-bottom: 2px solid var(--frameed35e-c-accent-hi);
  transform: rotate(-45deg);
}

/* Takeaway ticks reuse the check style with accent border */
.frameed35e-take li {
  border-left: 3px solid var(--frameed35e-c-accent-line);
}

/* Q&A pairs */
.frameed35e-qa {
  display: grid;
  gap: 8px;
  margin: 10px 0;
}

.frameed35e-qa-item {
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r-sm);
  background: var(--frameed35e-c-deep);
  padding: 9px 11px;
}

.frameed35e-q {
  display: block;
  font-family: var(--frameed35e-f-head);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--frameed35e-c-accent-hi);
  margin-bottom: 4px;
}

.frameed35e-q::before,
.frameed35e-a::before {
  font-family: var(--frameed35e-f-mono);
  color: var(--frameed35e-c-accent);
  margin-right: 6px;
}

.frameed35e-q::before {
  content: "Q/";
}

.frameed35e-a {
  display: block;
  font-size: 13px;
  color: var(--frameed35e-c-text);
}

.frameed35e-a::before {
  content: "A/";
}

/* Inline CTA row closing a module */
.frameed35e-sec-cta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 12px;
}

/* --------------------------------------------------------------------------
   11. Game zones - grouped cover cards
   -------------------------------------------------------------------------- */
.frameed35e-zone {
  margin: 0 12px 16px;
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r);
  background: linear-gradient(180deg, #3a3a3a, #353535);
  overflow: hidden;
}

.frameed35e-zone-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  padding: 10px 12px 6px;
  border-bottom: 1px solid var(--frameed35e-c-line);
}

.frameed35e-zone-tag {
  font-family: var(--frameed35e-f-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--frameed35e-c-accent);
  white-space: nowrap;
}

.frameed35e-zone-title {
  font-family: var(--frameed35e-f-head);
  font-size: 14.5px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.frameed35e-zone-count {
  margin-left: auto;
  font-family: var(--frameed35e-f-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--frameed35e-c-muted);
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r-sm);
  padding: 2px 6px;
  white-space: nowrap;
}

.frameed35e-zone-note {
  padding: 8px 12px 10px;
  color: var(--frameed35e-c-muted);
  font-size: 12.5px;
}

.frameed35e-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  padding: 0 10px 12px;
}

.frameed35e-tile {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  background: var(--frameed35e-c-panel);
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r-sm);
  padding: 4px;
}

.frameed35e-tile:active {
  border-color: var(--frameed35e-c-accent-line);
  background: var(--frameed35e-c-panel-2);
}

.frameed35e-tile-img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 2px;
  background: #2b2b2b;
}

.frameed35e-tile-name {
  font-size: 10.5px;
  line-height: 1.25;
  text-align: center;
  color: var(--frameed35e-c-text);
  min-height: 27px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  overflow-wrap: anywhere;
}

/* 430px breakpoint: fifth column for wider phones */
@media (min-width: 430px) {
  .frameed35e-grid {
    grid-template-columns: repeat(5, 1fr);
  }
}

/* --------------------------------------------------------------------------
   12. Extended footer - two-column directory, brand, promos, disclaimer
   -------------------------------------------------------------------------- */
.frameed35e-extfoot {
  margin: 0 12px 16px;
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r);
  background: var(--frameed35e-c-deep);
  padding: 14px 12px 12px;
}

.frameed35e-extfoot-title {
  font-family: var(--frameed35e-f-head);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.frameed35e-extfoot-block {
  margin-bottom: 14px;
}

.frameed35e-extfoot-block:last-child {
  margin-bottom: 0;
}

.frameed35e-block-label {
  font-family: var(--frameed35e-f-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--frameed35e-c-accent);
  margin-bottom: 8px;
}

.frameed35e-dir {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.frameed35e-dir-link {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  padding: 8px 9px;
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r-sm);
  background: var(--frameed35e-c-panel);
  color: var(--frameed35e-c-text);
  font-family: var(--frameed35e-f-head);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.25;
}

.frameed35e-dir-link:active {
  border-color: var(--frameed35e-c-accent-line);
}

.frameed35e-dir-link .frameed35e-ico {
  color: var(--frameed35e-c-accent);
}

.frameed35e-extfoot-brand {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r-sm);
  background: var(--frameed35e-c-panel);
  padding: 10px;
}

.frameed35e-extfoot-brand img {
  width: 34px;
  height: 34px;
  border-radius: var(--frameed35e-r-sm);
  border: 1px solid var(--frameed35e-c-accent-line);
  flex: none;
}

.frameed35e-extfoot-brand p {
  font-size: 12.5px;
  color: var(--frameed35e-c-muted);
}

.frameed35e-promos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.frameed35e-promo-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 8px 10px;
  border: 1px solid var(--frameed35e-c-accent-line);
  border-radius: var(--frameed35e-r-sm);
  background: var(--frameed35e-c-accent-dim);
  color: var(--frameed35e-c-text);
  font-family: var(--frameed35e-f-head);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.25;
  text-align: left;
}

.frameed35e-promo-item:active {
  background: rgba(32, 178, 170, 0.26);
  transform: translateY(1px);
}

.frameed35e-promo-item .frameed35e-ico {
  color: var(--frameed35e-c-accent-hi);
}

.frameed35e-extfoot-disc {
  border: 1px dashed var(--frameed35e-c-line-strong);
  border-radius: var(--frameed35e-r-sm);
  padding: 10px;
  font-size: 11.5px;
  line-height: 1.55;
  color: var(--frameed35e-c-muted);
}

/* --------------------------------------------------------------------------
   13. Common footer
   -------------------------------------------------------------------------- */
.frameed35e-footer {
  margin: 0 12px 14px;
  text-align: center;
  font-family: var(--frameed35e-f-mono);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  color: var(--frameed35e-c-muted);
  border-top: 1px solid var(--frameed35e-c-line);
  padding-top: 12px;
}

/* --------------------------------------------------------------------------
   14. Floating bottom dock with sliding indicator
   -------------------------------------------------------------------------- */
.frameed35e-dock {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 100%;
  max-width: var(--frameed35e-max);
  height: calc(var(--frameed35e-dock-h) + env(safe-area-inset-bottom, 0px));
  padding-bottom: env(safe-area-inset-bottom, 0px);
  z-index: 95;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  background: rgba(38, 38, 38, 0.97);
  border-top: 1px solid var(--frameed35e-c-line);
}

.frameed35e-dock-ind {
  position: absolute;
  top: -1px;
  left: 0;
  width: 20%;
  height: 3px;
  background: var(--frameed35e-c-accent);
  border-radius: 0 0 2px 2px;
  transform: translateX(0);
  transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}

.frameed35e-dock-item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-height: var(--frameed35e-dock-h);
  color: var(--frameed35e-c-muted);
  font-family: var(--frameed35e-f-head);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  -webkit-tap-highlight-color: rgba(32, 178, 170, 0.2);
}

.frameed35e-dock-item:active {
  color: var(--frameed35e-c-text);
}

.frameed35e-dock-item .frameed35e-ico {
  width: 21px;
  height: 21px;
}

.frameed35e-dock-on {
  color: var(--frameed35e-c-accent-hi);
  font-weight: 700;
}

/* --------------------------------------------------------------------------
   15. Motion preferences
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   16. Help-page comparison and route elements
   -------------------------------------------------------------------------- */
.frameed35e-route-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.frameed35e-route {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 10px;
  align-items: start;
  padding: 10px;
  border: 1px solid var(--frameed35e-c-line);
  border-left: 3px solid var(--frameed35e-c-accent);
  border-radius: var(--frameed35e-r-sm);
  background: var(--frameed35e-c-deep);
}

.frameed35e-route-no {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  background: var(--frameed35e-c-accent);
  color: var(--frameed35e-c-ink);
  font-family: var(--frameed35e-f-mono);
  font-weight: 700;
}

.frameed35e-route h3,
.frameed35e-route p {
  margin: 0;
}

.frameed35e-route h3 {
  font-family: var(--frameed35e-f-head);
  font-size: 13.5px;
  line-height: 1.3;
  color: var(--frameed35e-c-text);
}

.frameed35e-route p {
  margin-top: 4px;
  color: var(--frameed35e-c-muted);
  font-size: 12.5px;
}

.frameed35e-callout {
  margin-top: 10px;
  padding: 11px 12px;
  border: 1px solid var(--frameed35e-c-accent-line);
  border-radius: var(--frameed35e-r-sm);
  background: var(--frameed35e-c-accent-dim);
  color: var(--frameed35e-c-text);
  font-size: 13px;
}

.frameed35e-evidence {
  display: grid;
  gap: 7px;
  margin-top: 10px;
}

.frameed35e-evidence-row {
  display: grid;
  grid-template-columns: minmax(82px, 0.7fr) 1.3fr;
  gap: 8px;
  padding: 9px 10px;
  border-bottom: 1px solid var(--frameed35e-c-line);
}

.frameed35e-evidence-row:last-child {
  border-bottom: 0;
}

.frameed35e-evidence-label {
  font-family: var(--frameed35e-f-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--frameed35e-c-accent);
}

.frameed35e-evidence-value {
  color: var(--frameed35e-c-text);
  font-size: 12.5px;
}

.frameed35e-verdict {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.frameed35e-verdict-item {
  padding: 10px;
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r-sm);
  background: var(--frameed35e-c-panel);
}

.frameed35e-verdict-item strong {
  display: block;
  margin-bottom: 3px;
  font-family: var(--frameed35e-f-head);
  color: var(--frameed35e-c-accent-hi);
}

.frameed35e-review-grid {
  display: grid;
  gap: 7px;
  margin-top: 10px;
}

.frameed35e-review-row {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 8px;
  align-items: start;
  padding: 9px 10px;
  background: var(--frameed35e-c-deep);
  border: 1px solid var(--frameed35e-c-line);
  border-radius: var(--frameed35e-r-sm);
}

.frameed35e-review-label {
  font-family: var(--frameed35e-f-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--frameed35e-c-accent);
}

.frameed35e-review-row p {
  margin: 0;
  color: var(--frameed35e-c-text);
  font-size: 12.5px;
}

.frameed35e-faq-list {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.frameed35e-faq-card {
  padding: 11px 12px;
  border-left: 3px solid var(--frameed35e-c-accent);
  background: var(--frameed35e-c-deep);
}

.frameed35e-faq-card dt {
  font-family: var(--frameed35e-f-head);
  font-weight: 700;
  color: var(--frameed35e-c-accent-hi);
}

.frameed35e-faq-card dd {
  margin-top: 5px;
  color: var(--frameed35e-c-text);
  font-size: 13px;
}

@media (max-width: 350px) {
  .frameed35e-review-row,
  .frameed35e-evidence-row {
    grid-template-columns: 1fr;
    gap: 3px;
  }
}

/* --------------------------------------------------------------------------
   17. Motion preferences
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
