/* =====================================================================
   ION CASCADE chrome — HEX ORBITER
   No top nav row, no ribbon, no burger. Navigation lives in a fixed
   hexagonal hub at the TOP-RIGHT that fans destination rays down-left.
   Brand is a floating corner seal; cart + account ride the hub as
   satellites; mobile swaps the ring for a bottom fan of blades.
   ===================================================================== */

:root {
  /* Orbiter geometry */
  --orb-hub: 4.6rem;
  --orb-sat: 3.1rem;
  --orb-r-a: 10.2rem;  /* inner shell */
  --orb-r-b: 14.2rem;  /* outer shell */
  --orb-ray-w: 8.4rem;
  --orb-dock: 1.15rem;
  --orb-ease: cubic-bezier(0.22, 1.44, 0.36, 1);
  --orb-ease-soft: cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Clear runway for the fixed seal (top-left) and hub (top-right). */
body.a91-orbiter-shell .page-main { padding-top: clamp(4.75rem, 8vw, 6.5rem); }
body.a91-orbiter-shell .page-wrap { padding-right: clamp(1rem, 4vw, 2rem); padding-bottom: 1.5rem; }

/* ---------------------------------------------------------------------
   Edge ticks — replaces the old full-width marquee signal strip
   --------------------------------------------------------------------- */
.a91-edge-ticks {
  position: fixed;
  inset: 0;
  z-index: 30;
  pointer-events: none;
}
.a91-edge-ticks span {
  position: absolute;
  display: block;
  opacity: 0.5;
}
.a91-edge-ticks-top {
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  background:
    linear-gradient(90deg, var(--ic-cyan) 0 22%, var(--ic-volt) 22% 34%, var(--ic-coral) 34% 41%, transparent 41%),
    repeating-linear-gradient(90deg, rgba(11, 21, 38, 0.32) 0 1px, transparent 1px 16px);
}
.a91-edge-ticks-left,
.a91-edge-ticks-right {
  top: 18vh;
  bottom: 18vh;
  width: 6px;
  background: repeating-linear-gradient(180deg, rgba(11, 21, 38, 0.26) 0 1px, transparent 1px 14px);
}
.a91-edge-ticks-left { left: 0; }
.a91-edge-ticks-right { right: 0; }

/* ---------------------------------------------------------------------
   Header shell — a positioning context only, never a bar
   --------------------------------------------------------------------- */
.a91-header {
  position: static;
  padding: 0;
  background: transparent;
}

/* ---------------------------------------------------------------------
   Corner seal — floating brand + expandable search pill
   --------------------------------------------------------------------- */
.a91-seal-dock {
  position: fixed;
  top: 0.95rem;
  left: 0.95rem;
  z-index: 70;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  max-width: calc(100vw - 1.9rem);
}

.a91-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  text-decoration: none !important;
  min-width: 0;
}

.a91-brand--seal {
  gap: 0.6rem;
  padding: 0.5rem 0.95rem 0.5rem 0.5rem;
  border-radius: 0.4rem 1.5rem 1.5rem 0.4rem;
  background: var(--ic-glass-strong);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid var(--ic-glass-border);
  box-shadow: var(--ic-shadow-soft);
  transition: box-shadow 0.28s var(--orb-ease-soft), transform 0.28s var(--orb-ease-soft);
}
.a91-brand--seal:hover {
  transform: translateY(-1px);
  box-shadow: var(--ic-shadow);
}

.a91-seal-hex {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 2.85rem;
  height: 3.15rem;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  background: linear-gradient(150deg, var(--ic-cyan), var(--ic-slate));
  box-shadow: 0 8px 20px rgba(0, 138, 150, 0.32);
}

.a91-brand-mark {
  display: grid;
  place-items: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 0.9rem;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.85rem;
  color: #fff;
  background:
    radial-gradient(circle at 30% 25%, rgba(255, 255, 255, 0.35), transparent 45%),
    linear-gradient(145deg, var(--ic-cyan), var(--ic-slate));
  flex-shrink: 0;
}
.a91-seal-hex .a91-brand-mark {
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  box-shadow: none;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}

.a91-brand-stack {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
  min-width: 0;
}
.a91-brand-kicker {
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ic-cyan-deep);
}
.a91-brand-word {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(1rem, 2vw, 1.25rem);
  letter-spacing: -0.03em;
  color: var(--ic-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 11rem;
}
.a91-brand-sub {
  margin-top: 0.12rem;
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ic-mute);
}

/* Expandable search pill, attached under the seal */
.a91-search {
  display: flex;
  align-items: stretch;
  width: 3.05rem;
  overflow: hidden;
  border-radius: 999px;
  border: 1px solid var(--ic-glass-border);
  background: var(--ic-glass-strong);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: var(--ic-shadow-soft);
  transition: width 0.46s var(--orb-ease-soft);
}
.a91-search.is-open,
.a91-search:focus-within {
  width: min(21rem, calc(100vw - 2.5rem));
}
.a91-search-key {
  flex: 0 0 3.05rem;
  display: grid;
  place-items: center;
  border: 0;
  background: linear-gradient(135deg, var(--ic-cyan), var(--ic-cyan-deep));
  color: #fff;
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
}
.a91-search input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  padding: 0.7rem 0.9rem;
  font: inherit;
  font-size: 0.9rem;
  color: var(--ic-ink);
}
.a91-search-go {
  flex: 0 0 auto;
  border: 0;
  background: var(--ic-ink);
  color: #fff;
  padding: 0 1.05rem;
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
}

.a91-seal-note {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.a91-seal-note span {
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--ic-glass-border);
  box-shadow: var(--ic-shadow-soft);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ic-ink);
}
.a91-seal-note span:first-child {
  background: var(--ic-ink);
  border-color: transparent;
  color: var(--ic-volt);
}

/* ---------------------------------------------------------------------
   ORBITER — fixed hex hub, top-right
   --------------------------------------------------------------------- */
.a91-orbiter {
  position: fixed;
  top: 5.65rem;
  right: 0.85rem;
  left: auto;
  bottom: auto;
  z-index: 92;
  display: flex;
  justify-content: flex-end;
  pointer-events: none;
}

.a91-orb-stage {
  position: relative;
  pointer-events: auto;
}

.a91-orb-halo {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(var(--orb-r-b) * 2.2);
  height: calc(var(--orb-r-b) * 2.2);
  transform: translate(-50%, -50%) scale(0.4);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 184, 200, 0.16), rgba(255, 176, 32, 0.08) 45%, transparent 68%);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease, transform 0.6s var(--orb-ease-soft);
}

/* Zero-size anchor just above the hub centre; rays orbit around it.
   The lift keeps the outermost rays clear of the cart/account satellites. */
.a91-orb-ring {
  position: absolute;
  left: 50%;
  top: calc(50% - 1.2rem);
  width: 0;
  height: 0;
}

.a91-orb-ray {
  --orb-rr: 0rem;
  position: absolute;
  left: 0;
  top: 0;
  width: var(--orb-ray-w);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 0.6rem;
  border: 1px solid var(--ic-glass-border);
  border-radius: 0.55rem 1.15rem 1.15rem 0.55rem;
  /* Rays float over page content, so they stay near-opaque for legibility. */
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: var(--ic-shadow);
  color: var(--ic-ink);
  font: inherit;
  text-align: left;
  text-decoration: none !important;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform:
    rotate(var(--ang))
    translateY(calc(-1 * var(--orb-rr)))
    rotate(calc(-1 * var(--ang)))
    translate(-50%, -50%)
    scale(0.34);
  transition:
    transform 0.62s var(--orb-ease),
    opacity 0.3s ease,
    box-shadow 0.25s ease,
    background 0.25s ease;
}

.a91-orb-ray-glyph {
  display: grid;
  place-items: center;
  width: 1.95rem;
  height: 2.15rem;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  background: linear-gradient(140deg, rgba(0, 184, 200, 0.24), rgba(255, 176, 32, 0.26));
  color: var(--ic-cyan-deep);
  font-size: 0.92rem;
  flex-shrink: 0;
}
.a91-orb-ray-copy { min-width: 0; }
.a91-orb-ray-label {
  display: block;
  font-weight: 700;
  font-size: 0.82rem;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.a91-orb-ray-hint {
  display: block;
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  color: var(--ic-mute);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.a91-orb-ray-hot {
  position: absolute;
  top: -0.4rem;
  right: -0.3rem;
  padding: 0.1rem 0.38rem;
  border-radius: 999px;
  background: var(--ic-coral);
  color: #fff;
  font-size: 0.56rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.a91-orb-ray--dept {
  border-color: transparent;
  background: linear-gradient(140deg, var(--ic-ink), var(--ic-slate));
  color: #fff;
}
.a91-orb-ray--dept .a91-orb-ray-glyph {
  background: rgba(255, 255, 255, 0.14);
  color: var(--ic-volt);
}
.a91-orb-ray--dept .a91-orb-ray-hint { color: rgba(255, 255, 255, 0.62); }

/* Expanded ring */
.a91-orbiter.is-open .a91-orb-ray {
  --orb-rr: var(--orb-shell);
  opacity: 1;
  pointer-events: auto;
  transform:
    rotate(var(--ang))
    translateY(calc(-1 * var(--orb-rr)))
    rotate(calc(-1 * var(--ang)))
    translate(-50%, -50%)
    scale(1);
  transition-delay: var(--d), var(--d), 0s, 0s;
}
.a91-orbiter.is-open .a91-orb-halo {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

@media (hover: hover) and (pointer: fine) {
  .a91-orb-stage:hover .a91-orb-ray,
  .a91-orb-stage:focus-within .a91-orb-ray {
    --orb-rr: var(--orb-shell);
    opacity: 1;
    pointer-events: auto;
    transform:
      rotate(var(--ang))
      translateY(calc(-1 * var(--orb-rr)))
      rotate(calc(-1 * var(--ang)))
      translate(-50%, -50%)
      scale(1);
    transition-delay: var(--d), var(--d), 0s, 0s;
  }
  .a91-orb-stage:hover .a91-orb-halo,
  .a91-orb-stage:focus-within .a91-orb-halo {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
  .a91-orb-ray:hover {
    background: #fff;
    box-shadow: var(--ic-shadow);
  }
  .a91-orb-ray--dept:hover {
    background: linear-gradient(140deg, var(--ic-slate), var(--ic-cyan-deep));
  }
}

.a91-orb-ray.is-active,
.a91-orb-ray.is-mega-open {
  border-color: rgba(0, 184, 200, 0.5);
  box-shadow: 0 0 0 3px rgba(0, 184, 200, 0.16), var(--ic-shadow-soft);
}

/* Hub + satellites */
.a91-orb-core {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.a91-orb-sat {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  height: var(--orb-sat);
  padding: 0 0.8rem;
  border-radius: 999px;
  border: 1px solid var(--ic-glass-border);
  background: var(--ic-glass-strong);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: var(--ic-shadow-soft);
  color: var(--ic-ink);
  text-decoration: none !important;
  font-size: 0.78rem;
  font-weight: 700;
  position: relative;
  transition: transform 0.24s var(--orb-ease-soft), background 0.24s ease;
}
.a91-orb-sat:hover {
  background: #fff;
  transform: translateY(-2px);
}
.a91-orb-sat--account { border-bottom-right-radius: 0.5rem; }
.a91-orb-sat--cart {
  border-bottom-left-radius: 0.5rem;
  background: linear-gradient(135deg, rgba(0, 184, 200, 0.2), rgba(255, 176, 32, 0.24));
}
.a91-orb-sat-glyph {
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ic-cyan-deep);
}
.a91-orb-sat-label {
  max-width: 7rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.a91-orb-sat-count,
.a91-cart-count {
  display: inline-grid;
  place-items: center;
  min-width: 1.2rem;
  height: 1.2rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: var(--ic-coral);
  color: #fff;
  font-size: 0.66rem;
  font-weight: 800;
}

/* The hub button — repurposed .a91-menu-toggle, hexagonal, never three bars */
.a91-menu-toggle {
  position: relative;
  width: var(--orb-hub);
  height: calc(var(--orb-hub) + 0.55rem);
  display: grid;
  place-items: center;
  border: 0;
  padding: 0;
  background: none;
  cursor: pointer;
  color: #fff;
}
.a91-hub-shell {
  position: absolute;
  inset: 0;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  background:
    radial-gradient(circle at 32% 22%, rgba(255, 255, 255, 0.4), transparent 48%),
    linear-gradient(150deg, var(--ic-cyan), var(--ic-slate) 72%, var(--ic-ink));
  box-shadow: 0 14px 34px rgba(7, 17, 31, 0.34);
  transition: transform 0.5s var(--orb-ease), box-shadow 0.3s ease;
}
.a91-hub-glyph {
  position: relative;
  width: 1.85rem;
  height: 1.85rem;
  margin-top: -0.3rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  transition: transform 0.55s var(--orb-ease);
}
.a91-hub-glyph circle { fill: var(--ic-volt); stroke: none; }
.a91-hub-glyph circle:first-of-type { fill: #fff; }
.a91-hub-label {
  position: absolute;
  bottom: 0.42rem;
  font-size: 0.54rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.85;
}
.a91-menu-toggle:hover .a91-hub-shell {
  transform: scale(1.05);
  box-shadow: 0 18px 42px rgba(7, 17, 31, 0.4);
}
.a91-menu-toggle.is-open .a91-hub-shell { transform: rotate(30deg) scale(1.03); }
.a91-menu-toggle.is-open .a91-hub-glyph { transform: rotate(-60deg); }
.a91-menu-toggle:focus-visible { outline: 3px solid var(--ic-volt); outline-offset: 3px; }

/* ---------------------------------------------------------------------
   Mega panel — rises above the hub, not a dropdown from a top bar
   --------------------------------------------------------------------- */
.a91-navbar { position: static; }

.a91-mega {
  position: fixed;
  top: 7.5rem;
  bottom: auto;
  left: auto;
  right: 1rem;
  z-index: 95;
  width: min(1060px, calc(100vw - 2.5rem));
  max-height: min(60vh, 34rem);
  overflow: auto;
  padding: 1.15rem 0.35rem;
  border-radius: 0.7rem 1.6rem 1.6rem 0.7rem;
  background: linear-gradient(180deg, #ffffff 0%, #f6fafd 100%);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid var(--ic-glass-border);
  box-shadow: var(--ic-shadow);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-0.6rem) scale(0.97);
  transition: opacity 0.28s ease, transform 0.42s var(--orb-ease-soft), visibility 0.28s;
}
.a91-mega.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

/* While lanes are open the rays step aside. */
.a91-navbar:has(.a91-mega.is-open) ~ .a91-orb-stage .a91-orb-ray {
  opacity: 0;
  pointer-events: none;
}

.a91-mega-panel { display: none; }
.a91-mega-panel.is-active { display: block; }

.a91-mega-inner { display: grid; gap: 1rem; }
.a91-mega-dept { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.a91-mega-grid { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.a91-mega-col h4 {
  margin: 0 0 0.55rem;
  font-family: var(--font-display);
  font-size: 0.95rem;
}
.a91-mega-col a {
  display: block;
  padding: 0.22rem 0;
  color: var(--ic-mute);
  font-size: 0.86rem;
  text-decoration: none !important;
}
.a91-mega-col a:hover,
.a91-mega-col a.is-featured { color: var(--ic-cyan-deep); }
.a91-mega-promo {
  display: flex;
  gap: 0.85rem;
  align-items: center;
  padding: 0.75rem;
  border-radius: 0.5rem 1.1rem 1.1rem 0.5rem;
  background: linear-gradient(135deg, rgba(0, 184, 200, 0.12), rgba(255, 176, 32, 0.14));
  text-decoration: none !important;
  color: inherit;
  grid-column: 1 / -1;
}
.a91-mega-promo img {
  width: 4.5rem;
  height: 4.5rem;
  object-fit: cover;
  border-radius: 0.85rem;
}
.a91-mega-promo small {
  display: block;
  color: var(--ic-cyan-deep);
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.a91-mega-promo strong { display: block; margin: 0.15rem 0; }
.a91-mega-promo span { color: var(--ic-coral); font-weight: 800; }

/* ---------------------------------------------------------------------
   Mobile — the hub fans blades up from the dock (no side/bottom sheet)
   --------------------------------------------------------------------- */
.a91-mobile-drawer {
  position: fixed;
  inset: 0;
  z-index: 88;
  pointer-events: none;
  visibility: hidden;
}
.a91-mobile-drawer.is-open {
  pointer-events: auto;
  visibility: visible;
}
.a91-mobile-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 17, 31, 0.42);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity 0.28s ease;
}
.a91-mobile-drawer.is-open .a91-mobile-backdrop { opacity: 1; }

.a91-fan {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: calc(var(--orb-hub) + var(--orb-dock) + 1.1rem);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 0.7rem;
  padding: 1rem 0.85rem 0;
}

.a91-fan-scroll {
  flex: 0 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.a91-fan-tray {
  display: grid;
  gap: 0.55rem;
  padding: 0.85rem;
  border-radius: 1.1rem;
  background: #f4f9fd;
  border: 1px solid var(--ic-glass-border);
  box-shadow: var(--ic-shadow);
  opacity: 0;
  transform: translateY(1.5rem) scale(0.96);
  transition: transform 0.5s var(--orb-ease-soft), opacity 0.3s ease;
}
.a91-mobile-drawer.is-open .a91-fan-tray {
  opacity: 1;
  transform: none;
  transition-delay: 0.16s;
}

.a91-fan-arc {
  display: grid;
  gap: 0.4rem;
}

.a91-fan-blade {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.6rem;
  padding: 0.65rem 0.85rem;
  border-radius: 0.55rem 1.25rem 1.25rem 0.55rem;
  border: 1px solid var(--ic-glass-border);
  /* Blades ride over dark hero art, so every fill here stays opaque. */
  background: #fff;
  box-shadow: var(--ic-shadow-soft);
  color: var(--ic-ink);
  text-decoration: none !important;
  position: relative;
  transform-origin: 50% calc(100% + 8rem);
  transform: rotate(calc(var(--rot, 0deg) * 7)) translateY(2rem) scale(0.86);
  opacity: 0;
  transition: transform 0.54s var(--orb-ease), opacity 0.3s ease;
}
.a91-mobile-drawer.is-open .a91-fan-blade {
  transform: rotate(var(--rot, 0deg)) translateY(0) scale(1);
  opacity: 1;
  transition-delay: var(--d, 0ms);
}
.a91-fan-blade.is-active {
  border-color: rgba(0, 184, 200, 0.55);
  background: #e2f8fa;
}
.a91-fan-blade--cart {
  background: var(--ic-ink);
  border-color: transparent;
  color: #fff;
}
.a91-fan-blade--cart .a91-fan-blade-copy small { color: rgba(255, 255, 255, 0.72); }
.a91-fan-blade--cart .a91-fan-blade-glyph {
  background: var(--ic-volt);
  color: var(--ic-ink);
}
.a91-fan-blade--account { background: #fff; }
.a91-fan-blade-glyph {
  display: grid;
  place-items: center;
  width: 2.05rem;
  height: 2.3rem;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  background: #d8f4f7;
  color: var(--ic-cyan-deep);
  font-size: 0.72rem;
  font-weight: 700;
}
.a91-fan-blade-copy { min-width: 0; }
.a91-fan-blade-copy strong {
  display: block;
  font-size: 0.88rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.a91-fan-blade-copy small {
  display: block;
  font-size: 0.68rem;
  color: var(--ic-mute);
}
.a91-fan-blade-badge,
.a91-fan-blade-hot {
  font-style: normal;
  display: inline-grid;
  place-items: center;
  min-width: 1.3rem;
  height: 1.3rem;
  padding: 0 0.4rem;
  border-radius: 999px;
  background: var(--ic-coral);
  color: #fff;
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}

.a91-fan-close {
  margin-top: 0.2rem;
  padding: 0.6rem;
  border: 1px dashed rgba(11, 21, 38, 0.35);
  border-radius: 999px;
  background: #fff;
  color: var(--ic-ink);
  font: inherit;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.3s ease 0.34s;
}
.a91-mobile-drawer.is-open .a91-fan-close { opacity: 1; }

.a91-mobile-search {
  display: flex;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid var(--ic-glass-border);
  background: #fff;
}
.a91-mobile-search input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: 0;
  padding: 0.7rem 1rem;
  font: inherit;
  font-size: 0.9rem;
}
.a91-mobile-search button {
  border: 0;
  background: var(--ic-cyan-deep);
  color: #fff;
  padding: 0 1rem;
  font-weight: 700;
  cursor: pointer;
}

.a91-mobile-acc-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.7rem 0.9rem;
  border-radius: 0.85rem;
  border: 1px solid var(--ic-glass-border);
  background: #fff;
  font: inherit;
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
}
.a91-mobile-acc-caret {
  margin-left: auto;
  width: 0.5rem;
  height: 0.5rem;
  border-right: 2px solid var(--ic-ink);
  border-bottom: 2px solid var(--ic-ink);
  transform: rotate(45deg);
  transition: transform 0.22s ease;
}
.a91-mobile-acc-toggle[aria-expanded="true"] .a91-mobile-acc-caret { transform: rotate(-135deg); }
.a91-mobile-acc-panel { padding: 0.55rem 0 0; }
.a91-mobile-cat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
}
.a91-mobile-cat-link {
  padding: 0.55rem 0.7rem;
  border-radius: 0.7rem;
  background: rgba(11, 21, 38, 0.04);
  border: 1px solid var(--ic-glass-border);
  text-decoration: none !important;
  color: var(--ic-ink);
  font-size: 0.78rem;
  font-weight: 650;
}
.a91-mobile-secondary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
}
.a91-mobile-secondary a {
  padding: 0.6rem 0.7rem;
  border-radius: 0.7rem;
  background: rgba(11, 21, 38, 0.04);
  text-decoration: none !important;
  color: var(--ic-ink);
  font-size: 0.8rem;
  font-weight: 650;
}
.a91-mobile-contact {
  display: grid;
  gap: 0.28rem;
}
.a91-mobile-contact a {
  color: var(--ic-mute);
  text-decoration: none !important;
  font-size: 0.82rem;
}

body.a91-drawer-open { overflow: hidden; }

/* ---------------------------------------------------------------------
   Footer — diagonal frost cascade (unchanged language, retuned edges)
   --------------------------------------------------------------------- */
.a91-newsletter {
  position: relative;
  z-index: 1;
  margin: 2rem 0 0;
  padding: 0;
}
.a91-newsletter-inner {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 1.25rem;
  align-items: center;
  padding: 1.5rem;
  border-radius: 1.6rem;
  background:
    linear-gradient(135deg, rgba(0, 184, 200, 0.16), rgba(255, 176, 32, 0.14)),
    var(--ic-glass-strong);
  backdrop-filter: blur(16px);
  border: 1px solid var(--ic-glass-border);
  box-shadow: var(--ic-shadow-soft);
  clip-path: polygon(0 8%, 100% 0, 100% 92%, 0 100%);
}
.a91-newsletter-copy h2 {
  margin: 0 0 0.35rem;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.5vw, 1.85rem);
  letter-spacing: -0.02em;
}
.a91-newsletter-copy p { margin: 0; color: var(--ic-mute); }
.a91-newsletter-form {
  display: flex;
  gap: 0.45rem;
  background: rgba(255, 255, 255, 0.75);
  padding: 0.35rem;
  border-radius: 999px;
  border: 1px solid var(--ic-glass-border);
}
.a91-newsletter-form input {
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  padding: 0.7rem 0.9rem;
  font: inherit;
  min-width: 0;
  color: var(--ic-ink);
}
.a91-newsletter-form input::placeholder { color: rgba(7, 17, 31, 0.55); }
.a91-newsletter-form button {
  border: 0;
  border-radius: 999px;
  padding: 0.7rem 1.2rem;
  background: var(--ic-ink);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}
.a91-newsletter-form button:hover,
.a91-newsletter-form button:focus-visible {
  background: #00B8C8;
  color: #07111F;
}

.a91-trust-bar { display: none; }

.a91-footer {
  position: relative;
  z-index: 1;
  margin-top: 1.5rem;
  padding: 2.5rem 0 1.25rem;
  background: linear-gradient(160deg, rgba(7, 17, 31, 0.96), rgba(30, 58, 95, 0.94));
  color: rgba(255, 255, 255, 0.86);
  clip-path: polygon(0 2.5rem, 100% 0, 100% 100%, 0 100%);
}
.a91-footer a { color: rgba(255, 255, 255, 0.78); text-decoration: none !important; }
.a91-footer a:hover { color: var(--ic-volt); }
.a91-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
  padding-top: 1.5rem;
}
.a91-footer-brand p {
  margin: 0.85rem 0 0;
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.9rem;
  max-width: 28rem;
}
.a91-brand--footer { padding: 0; background: none; border: 0; box-shadow: none; backdrop-filter: none; }
.a91-brand--footer:hover { transform: none; box-shadow: none; }
.a91-brand--footer .a91-brand-kicker { color: var(--ic-cyan); }
.a91-brand--footer .a91-brand-word { color: #fff; max-width: none; }
.a91-footer-col h4 {
  margin: 0 0 0.75rem;
  font-family: var(--font-display);
  font-size: 0.95rem;
  color: #fff;
}
.a91-footer-col a {
  display: block;
  padding: 0.28rem 0;
  font-size: 0.88rem;
}
.a91-footer-base {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  align-items: center;
  justify-content: space-between;
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.6);
}
.a91-pay-icons {
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.a91-back-top {
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--ic-cyan);
  color: #fff !important;
}

/* ---------------------------------------------------------------------
   Account mark
   --------------------------------------------------------------------- */
.a91-account-mark {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  color: var(--ic-ink);
  flex-shrink: 0;
}
.a91-account-mark--mobile { width: 1.7rem; height: 1.7rem; }
.a91-account-mark--quick { width: 2.05rem; height: 2.3rem; }
.a91-account-mark-glow,
.a91-account-mark-ring { display: none; }
.a91-account-mark-core {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  background: linear-gradient(135deg, rgba(0, 184, 200, 0.2), rgba(255, 176, 32, 0.24));
  font-size: 0.6rem;
  font-weight: 800;
}
.a91-account-mark--nav .a91-account-mark-core { border-radius: 0; }
.a91-account-mark-svg { width: 1rem; height: 1rem; }
.a91-account-mark-dot {
  position: absolute;
  right: -2px;
  bottom: 0;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 999px;
  background: var(--ic-cyan);
  border: 1.5px solid #fff;
}
.a91-account-mark.is-signed-in .a91-account-mark-core {
  background: linear-gradient(135deg, var(--ic-cyan), var(--ic-slate));
  color: #fff;
}

/* ---------------------------------------------------------------------
   Breakpoints
   --------------------------------------------------------------------- */
@media (min-width: 981px) {
  /* Desktop uses the ring only — the fan never mounts. */
  .a91-mobile-drawer { display: none !important; }
}

@media (max-width: 1120px) {
  :root {
    --orb-r-a: 9.2rem;
    --orb-r-b: 12.8rem;
    --orb-ray-w: 7.6rem;
  }
  .a91-orb-ray-hint { display: none; }
}

@media (max-width: 980px) {
  /* Mobile/tablet: ring retires, the fan takes over from the same hub. */
  .a91-orb-ring,
  .a91-orb-halo { display: none; }
  .a91-orb-sat-label { display: none; }
  .a91-orb-sat { padding: 0 0.7rem; }
  .a91-seal-note { display: none; }
  .a91-brand--seal { padding: 0.4rem 0.75rem 0.4rem 0.4rem; }
  .a91-brand-sub { display: none; }
  .a91-seal-hex { width: 2.45rem; height: 2.7rem; }
  .a91-mega {
    top: 6.5rem;
    bottom: auto;
    right: 0.75rem;
    left: auto;
    max-height: 56vh;
  }
  .a91-newsletter-inner {
    grid-template-columns: 1fr;
    clip-path: none;
  }
  .a91-footer { clip-path: none; }
  .a91-footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .a91-footer-grid { grid-template-columns: 1fr; }
  .a91-brand-word { max-width: 8.5rem; font-size: 0.98rem; }
  .a91-search.is-open,
  .a91-search:focus-within { width: calc(100vw - 2.2rem); }
  .a91-mobile-secondary { grid-template-columns: 1fr; }
  .a91-fan { padding-inline: 0.7rem; }
}

@media (prefers-reduced-motion: reduce) {
  .a91-orb-ray,
  .a91-orb-halo,
  .a91-fan-blade,
  .a91-fan-tray,
  .a91-hub-shell,
  .a91-hub-glyph,
  .a91-mega,
  .a91-search {
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
  }
}
