/* AeroClub v29 polish layer — themed header, hero, footer, buttons,
   creator wallet hint, scrollable accessories, smooth dialogs. */

/* ============ Buttons: glass shine sweep, plain gliding arrow ============ */
.a29-button {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  gap: 10px;
  letter-spacing: 0.4px;
  border-radius: 10px;
}

.a29-button::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    115deg,
    transparent 32%,
    rgba(255, 255, 255, 0.28) 46%,
    rgba(255, 255, 255, 0.55) 50%,
    rgba(255, 255, 255, 0.28) 54%,
    transparent 68%
  );
  transform: translateX(-130%);
  transition: transform 0.7s ease;
  pointer-events: none;
}

.a29-button:hover::after {
  transform: translateX(130%);
}

/* Plain arrow — no disc, no box. Just a graceful glide. */
.a29-button > span {
  display: inline-block;
  font-size: 1em;
  line-height: 1;
  transition: transform 0.25s ease;
}

.a29-button:hover > span {
  transform: translateX(4px);
}

/* Hero CTAs: slightly grander. */
.a29-actions .a29-button {
  min-height: 52px;
  padding: 14px 30px;
  border-radius: 12px;
  font-size: 13px !important;
  letter-spacing: 0.6px;
}

/* ============ Themed header ============ */
.a29-nav {
  background: linear-gradient(
    180deg,
    rgba(9, 56, 82, 0.94) 0%,
    rgba(6, 40, 60, 0.9) 78%,
    rgba(6, 40, 60, 0.82) 100%
  ) !important;
  backdrop-filter: blur(22px) saturate(1.5);
  -webkit-backdrop-filter: blur(22px) saturate(1.5);
  border-bottom: none !important;
  box-shadow:
    0 1px 0 rgba(141, 211, 239, 0.22),
    0 14px 34px rgba(0, 18, 32, 0.42),
    inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

/* Aqua light-line along the nav bottom edge. */
.a29-nav::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent 2%,
    rgba(89, 200, 255, 0.55) 30%,
    rgba(166, 239, 208, 0.65) 55%,
    rgba(89, 200, 255, 0.55) 78%,
    transparent 98%
  );
  pointer-events: none;
}

.a29-brand img {
  filter: drop-shadow(0 3px 10px rgba(72, 198, 238, 0.55)) !important;
  transition: transform 0.35s ease;
}

.a29-brand:hover img {
  transform: rotate(8deg) scale(1.06);
}

.a29-brand > span {
  text-shadow: 0 2px 12px rgba(2, 40, 66, 0.8);
}

/* --- Nav text links (World / Utility): underline sweep --- */
.a29-nav-links > button:not(.a29-button) {
  position: relative;
  padding: 12px 4px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1.2px;
  color: #dff2fa;
  text-shadow: 0 1px 8px rgba(2, 40, 66, 0.6);
  transition: color 0.2s ease;
}

.a29-nav-links > button:not(.a29-button)::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 4px;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, #59c8ff, #a6efd0);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}

.a29-nav-links > button:not(.a29-button):hover {
  color: #ffffff;
}

.a29-nav-links > button:not(.a29-button):hover::after {
  transform: scaleX(1);
}

/* --- Info dropdown: plain rotating chevron (no ring) + glass panel --- */
.a29-info summary {
  gap: 7px;
  padding: 12px 4px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1.2px;
  color: #dff2fa;
  text-shadow: 0 1px 8px rgba(2, 40, 66, 0.6);
  align-items: center;
  transition: color 0.2s ease;
}

.a29-info summary:hover {
  color: #ffffff;
}

/* Chevron: a crisp SVG stroke that rotates smoothly around its own
   center — no bounce, no drift, no ring. */
.a29-caret {
  display: inline-block;
  width: 11px;
  height: 11px;
  margin-top: 1px;
  transform: rotate(0deg);
  transform-origin: 50% 50%;
  transition:
    transform 0.28s cubic-bezier(0.4, 0, 0.2, 1),
    color 0.2s ease;
}

.a29-info[open] summary {
  color: #ffffff;
}

.a29-info[open] .a29-caret {
  transform: rotate(180deg);
  color: #59c8ff;
}

@keyframes a29p-drop {
  from {
    opacity: 0;
    transform: translateY(-10px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes a29p-drop-out {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  to {
    opacity: 0;
    transform: translateY(-8px) scale(0.97);
  }
}

/* Menu items slide in from the left, one after another. */
@keyframes a29p-drop-item {
  from {
    opacity: 0;
    transform: translateX(-12px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.a29-info > div {
  top: calc(100% + 12px);
  right: -14px;
  width: 215px;
  padding: 8px;
  border-radius: 14px;
  background: linear-gradient(165deg, rgba(253, 255, 255, 0.97), rgba(227, 244, 251, 0.97));
  border: 1px solid rgba(255, 255, 255, 0.85);
  box-shadow:
    0 24px 55px rgba(0, 24, 39, 0.5),
    inset 0 1px #ffffff;
  backdrop-filter: blur(14px);
  transform-origin: top right;
}

/* Soft spring open, gentle fade close, lightly staggered items. */
.a29-info[open] > div {
  animation: a29p-drop 0.42s cubic-bezier(0.2, 0.9, 0.26, 1.12);
}

.a29-info > div.closing {
  animation: a29p-drop-out 0.17s ease-in both;
}

.a29-info[open] > div > * {
  animation: a29p-drop-item 0.3s ease both;
}

.a29-info[open] > div > *:nth-child(2) { animation-delay: 0.05s; }
.a29-info[open] > div > *:nth-child(3) { animation-delay: 0.1s; }
.a29-info[open] > div > *:nth-child(4) { animation-delay: 0.15s; }

.a29-info a,
.a29-info > div button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border-radius: 9px;
  font-size: 12px;
  color: #1f5c79;
  transition:
    background 0.15s ease,
    transform 0.15s ease,
    color 0.15s ease;
}

.a29-info a:hover,
.a29-info > div button:hover {
  background: #d2edf7;
  color: #0d4a66;
  transform: translateX(3px);
}

/* ============ Hero polish ============ */
/* Kicker: plain, bright text — no pill, own line. */
.a29-hero .a29-kicker {
  display: block;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  color: #f0fff8;
  font-size: 11px;
  letter-spacing: 4.5px;
  text-shadow:
    0 2px 10px rgba(2, 40, 66, 0.95),
    0 0 24px rgba(89, 200, 255, 0.35);
}

/* Crest: slightly larger, sitting closer to the wordmark. */
.a29-hero .a29-crest {
  width: 106px;
  height: 106px;
  margin: 12px 0 0;
}

.a29-hero-copy h1 {
  margin: 0 0 12px;
  background: linear-gradient(180deg, #ffffff 22%, #cdefff 58%, #7fd4ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 8px 30px rgba(14, 92, 140, 0.55));
}

.a29-hero-copy .a29-motto {
  text-shadow: 0 2px 14px rgba(2, 47, 82, 0.9);
}

/* Entry note: plain, readable text under the CTAs. */
.a29-entry-note {
  display: block;
  margin: 22px auto 0;
  padding: 0;
  background: none;
  border: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  font-size: 12px;
  font-weight: 500;
  color: #f2fbff;
  letter-spacing: 1.4px;
  text-shadow:
    0 2px 10px rgba(2, 40, 66, 0.95),
    0 0 18px rgba(6, 60, 92, 0.6);
}

/* Intro copy: a touch larger and brighter for easy reading. */
.a29-hero-copy .a29-intro {
  font-size: 15px;
  color: #e3f4fc;
  text-shadow: 0 2px 10px rgba(2, 40, 66, 0.9);
}

.a29-discover {
  transition: color 0.2s ease, letter-spacing 0.3s ease;
}

.a29-discover:hover {
  color: #ffffff;
  letter-spacing: 3px;
}

/* Gentle staggered arrival for the hero copy. */
@keyframes a29p-rise {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.a29-hero-copy .a29-kicker,
.a29-hero-copy .a29-crest,
.a29-hero-copy h1,
.a29-hero-copy .a29-motto,
.a29-hero-copy .a29-intro,
.a29-hero-copy .a29-actions,
.a29-hero-copy .a29-entry-note {
  animation: a29p-rise 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.a29-hero-copy .a29-crest { animation-delay: 0.08s; }
.a29-hero-copy h1 { animation-delay: 0.14s; }
.a29-hero-copy .a29-motto { animation-delay: 0.2s; }
.a29-hero-copy .a29-intro { animation-delay: 0.26s; }
.a29-hero-copy .a29-actions { animation-delay: 0.32s; }
.a29-hero-copy .a29-entry-note { animation-delay: 0.38s; }

/* ============ Footer polish ============ */
.a29-footer {
  position: relative;
  border-top: none !important;
  background: linear-gradient(180deg, rgba(6, 40, 60, 0) 0%, rgba(4, 30, 46, 0.9) 30%);
  box-shadow: inset 0 1px 0 rgba(141, 211, 239, 0.18);
  gap: 18px;
}

.a29-footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(89, 200, 255, 0.5), rgba(166, 239, 208, 0.5), transparent);
  pointer-events: none;
}

.a29-footer a,
.a29-footer button {
  position: relative;
  transition: color 0.2s ease;
  letter-spacing: 0.4px;
}

.a29-footer a:hover,
.a29-footer button:hover {
  color: #a6efd0;
}

.a29-footer > small {
  letter-spacing: 1.2px;
  opacity: 0.55;
}

/* ============ FAQ rows: gentle hover lift ============ */
.a29-faq h3 button {
  transition: color 0.2s ease;
}

.a29-faq h3 button:hover {
  color: #ffffff;
}

/* ============ Creator: slim "sign back in" line ============ */
.ac-boot-connect {
  margin: 14px 0 0;
  font-size: 11.5px;
  line-height: 1.7;
  letter-spacing: 0.2px;
  color: #4d7891;
  text-align: center;
}

.ac-boot-connect button {
  border: 0;
  background: none;
  padding: 0 0 1px;
  font: inherit;
  font-weight: 700;
  color: #0d6ea5;
  border-bottom: 1px solid #7cc4e8;
  cursor: pointer;
  transition:
    color 0.2s ease,
    border-color 0.2s ease;
}

.ac-boot-connect button:hover {
  color: #084e7c;
  border-color: #084e7c;
}

/* ============ Creator / avatar editor: scrollable accessories ============ */
.a25-accessories {
  max-height: 258px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 5px;
  scrollbar-width: thin;
  scrollbar-color: #7cc4e8 transparent;
}

.a25-accessories::-webkit-scrollbar {
  width: 9px;
}

.a25-accessories::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.35);
  border-radius: 9px;
}

.a25-accessories::-webkit-scrollbar-thumb {
  background: linear-gradient(#a5dcf4, #57a9d8);
  border-radius: 9px;
  border: 2px solid rgba(255, 255, 255, 0.4);
}

/* ============ Dialogs: smooth entrance, clean close ============ */
@keyframes ac-dialog-in {
  from {
    opacity: 0;
    transform: translateY(16px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes ac-backdrop-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.a26-activity-dialog[open] {
  animation: ac-dialog-in 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.a26-activity-dialog::backdrop {
  animation: ac-backdrop-in 0.28s ease;
}

/* Plain, centered × — no off-center circle. */
.a26-activity-dialog > .a26-dialog-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  color: #347393;
  font-size: 22px !important;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  transition:
    color 0.15s ease,
    transform 0.15s ease;
}

.a26-dialog-close:hover {
  color: #0b5a86;
  transform: scale(1.15);
}

/* ============ Reduced motion ============ */
@media (prefers-reduced-motion: reduce) {
  .a29-button::after {
    display: none;
  }

  .a29-button > span,
  .a29-nav-links > button:not(.a29-button)::after,
  .a29-info summary span,
  .a29-info a,
  .a29-info > div button,
  .a29-brand img,
  .a29-discover,
  .ac-boot-connect {
    transition: none;
  }

  .a29-info > div,
  .a29-info[open] > div,
  .a29-info > div.closing,
  .a29-info[open] > div > *,
  .a26-activity-dialog[open],
  .a26-activity-dialog::backdrop,
  .a29-hero-copy .a29-kicker,
  .a29-hero-copy .a29-crest,
  .a29-hero-copy h1,
  .a29-hero-copy .a29-motto,
  .a29-hero-copy .a29-intro,
  .a29-hero-copy .a29-actions,
  .a29-hero-copy .a29-entry-note {
    animation: none;
  }
}

/* ================= v29.1 — "Good ideas leave rare souvenirs" section ================= */

/* Section intro copy: a touch brighter. */
.a29-heading > p {
  color: #b3d2e0;
}

/* Utility cards: glass panels with an aqua light along the top edge. */
.a29-utility-grid article {
  border-radius: 16px;
  background:
    linear-gradient(160deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.03) 45%),
    linear-gradient(160deg, rgba(38, 96, 128, 0.42), rgba(10, 48, 68, 0.55));
  border: 1px solid rgba(156, 224, 238, 0.28);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.22),
    0 14px 34px rgba(1, 22, 38, 0.35);
  transition:
    opacity 0.55s ease var(--d, 0s),
    translate 0.55s cubic-bezier(0.22, 1, 0.36, 1) var(--d, 0s),
    transform 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease;
  overflow: hidden;
}

.a29-utility-grid article::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(89, 200, 255, 0.6),
    rgba(166, 239, 208, 0.55),
    transparent
  );
  opacity: 0.85;
  pointer-events: none;
}

.a29-utility-grid article:hover {
  transform: translateY(-4px);
  border-color: rgba(140, 224, 240, 0.5);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.26),
    0 22px 44px rgba(1, 22, 38, 0.5),
    0 0 24px rgba(60, 180, 235, 0.16);
}

.a29-utility-grid img {
  width: 66px;
  height: 66px;
  margin-bottom: 14px;
}

.a29-utility-grid h3 {
  letter-spacing: -0.4px;
}

.a29-utility-grid p {
  color: #b3d3e0;
}

.a29-step {
  right: 28px;
  top: 30px;
  color: #7fb4c9;
}

/* Collection cards: gentle hover lift with a mint edge. */
.a29-collection article {
  border-radius: 16px;
  border: 1px solid rgba(118, 201, 223, 0.32);
  background: radial-gradient(ellipse at 50% 0%, rgba(103, 215, 235, 0.22), rgba(18, 57, 79, 0.55) 72%);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.14),
    0 12px 30px rgba(2, 24, 40, 0.35);
  transition:
    opacity 0.55s ease var(--d, 0s),
    translate 0.55s cubic-bezier(0.22, 1, 0.36, 1) var(--d, 0s),
    transform 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease;
}

.a29-collection article:hover {
  transform: translateY(-5px);
  border-color: rgba(166, 239, 208, 0.55);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.2),
    0 20px 42px rgba(2, 24, 40, 0.5),
    0 0 22px rgba(90, 220, 190, 0.16);
}

.a29-collection small {
  color: #b8f0e2;
}

/* Token strip: a floating glass banner instead of a plain divider. */
.a29-token {
  margin-top: 70px;
  padding: 26px 30px;
  border: 1px solid rgba(160, 220, 240, 0.28);
  border-radius: 18px;
  background:
    linear-gradient(120deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02) 50%),
    linear-gradient(160deg, rgba(24, 80, 110, 0.5), rgba(8, 44, 64, 0.55));
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.2),
    0 16px 40px rgba(1, 20, 34, 0.4);
}

.a29-token > img {
  width: 88px;
  height: 88px;
  filter: drop-shadow(0 6px 14px rgba(70, 190, 240, 0.35));
}

.a29-token h3 {
  letter-spacing: -1px;
  background: linear-gradient(180deg, #ffffff, #bdeeff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.a29-token p {
  color: #aed2e2;
}

@media (prefers-reduced-motion: reduce) {
  .a29-utility-grid article,
  .a29-collection article {
    transition: none;
  }
}

/* ================= v29.2 — centered header, buy button, section rhythm ================= */

/* Header: brand left, links centered, Play on the right. */
.a29-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  column-gap: 18px;
}

.a29-brand {
  grid-column: 1;
  justify-self: start;
}

.a29-nav-links {
  grid-column: 2;
  justify-self: center;
  gap: 26px;
}

.a29-nav-cta {
  grid-column: 3;
  justify-self: end;
  min-height: 46px;
  padding: 12px 36px;
  border-radius: 12px;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 1.2px;
}

@media (max-width: 760px) {
  .a29-nav {
    column-gap: 10px;
  }

  .a29-nav-cta {
    min-height: 40px;
    padding: 10px 22px;
  }
}

/* Hero action buttons: text optically centered. */
.a29-actions .a29-button {
  justify-content: center;
  text-align: center;
}

/* --- Section headings: fine rules beside the kicker --- */
.a29-heading .a29-kicker {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-size: 10.5px;
}

.a29-heading .a29-kicker::before,
.a29-heading .a29-kicker::after {
  content: '';
  width: 34px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(139, 220, 199, 0.65));
}

.a29-heading .a29-kicker::after {
  background: linear-gradient(90deg, rgba(139, 220, 199, 0.65), transparent);
}

/* --- Section rhythm --- */
.a29-section {
  padding-block: 115px;
}

.a29-heading {
  margin-bottom: 78px;
}

/* Feature pictures: slow cinematic zoom on hover. */
.a29-picture {
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease;
}

.a29-picture img {
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.a29-picture:hover {
  border-color: rgba(134, 199, 227, 0.55);
  box-shadow:
    0 22px 55px rgba(1, 27, 48, 0.45),
    inset 0 1px rgba(255, 255, 255, 0.18);
}

.a29-picture:hover img {
  transform: scale(1.035);
}

/* --- "03 / A community that creates": the showcase moment --- */
#collect .a29-heading {
  max-width: 840px;
  margin-bottom: 85px;
}

#collect .a29-heading .a29-kicker {
  font-size: 12px;
  letter-spacing: 5px;
  color: #9fe8cf;
  text-shadow: 0 0 18px rgba(89, 200, 255, 0.35);
}

#collect .a29-heading h2 {
  font-size: clamp(46px, 5.4vw, 74px);
  letter-spacing: -2.6px;
  line-height: 1.05;
  background: linear-gradient(180deg, #ffffff 28%, #c4efff 68%, #82d6ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 10px 34px rgba(14, 92, 140, 0.4));
}

#collect .a29-heading > p {
  font-size: 15px;
  color: #c8e4ef;
}

/* --- Staggered card reveals (delay lives on opacity/translate only,
       so hover transitions stay instant) --- */
.a29-utility-grid.will-reveal:not(.visible) article,
.a29-collection.will-reveal:not(.visible) article {
  opacity: 0;
  translate: 0 26px;
}

.a29-utility-grid.will-reveal article:nth-child(2) { --d: 0.1s; }
.a29-utility-grid.will-reveal article:nth-child(3) { --d: 0.2s; }
.a29-collection.will-reveal article:nth-child(2) { --d: 0.08s; }
.a29-collection.will-reveal article:nth-child(3) { --d: 0.16s; }
.a29-collection.will-reveal article:nth-child(4) { --d: 0.24s; }

@media (prefers-reduced-motion: reduce) {
  .a29-picture,
  .a29-picture img,
  .a29-utility-grid article,
  .a29-collection article {
    transition: none;
  }

  .a29-utility-grid.will-reveal:not(.visible) article,
  .a29-collection.will-reveal:not(.visible) article {
    opacity: 1;
    translate: 0 0;
  }
}

/* ================= v29.3 — deep polish ================= */

/* First paint: calm deep-sky backdrop while the landing assembles —
   no white flash, no glimpse of the setup screen. */
html.a29-booting body {
  background: #06283a;
}

/* --- Info dropdown floats above the header light-line and scroll bar --- */
.a29-info {
  z-index: 60;
}

.a29-info > div {
  top: calc(100% + 16px);
  z-index: 60;
}

/* --- Film strip: clearer labels, deeper shade --- */
.a29-film button::after {
  background: linear-gradient(rgba(6, 51, 74, 0.04), rgba(3, 34, 52, 0.72));
  transition: background 0.3s ease;
}

.a29-film button > span {
  font-size: 11px;
  letter-spacing: 0.8px;
  text-shadow: 0 2px 8px rgba(3, 30, 48, 0.9);
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.a29-film button:hover > span {
  transform: translateY(-2px);
}

/* --- Section headings: centered intro copy --- */
.a29-heading > p {
  max-width: 560px;
  margin-inline: auto;
}

/* --- Panorama: stronger contrast over the shrine artwork --- */
.a29-panorama h2 {
  text-shadow: 0 3px 18px rgba(2, 30, 50, 0.6);
}

.a29-panorama p {
  color: #d0ecf5;
}

/* --- "Your first minute": glass cards, plain step numbers --- */
.a29-start-grid {
  gap: 26px;
}

.a29-start-grid article {
  padding: 34px 26px 30px;
  border-radius: 18px;
  border: 1px solid rgba(156, 224, 238, 0.24);
  background:
    linear-gradient(160deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.02) 45%),
    linear-gradient(160deg, rgba(36, 92, 124, 0.35), rgba(9, 42, 62, 0.45));
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.18),
    0 14px 34px rgba(1, 20, 34, 0.32);
  transition:
    transform 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease;
}

.a29-start-grid article:hover {
  transform: translateY(-4px);
  border-color: rgba(140, 224, 240, 0.45);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.24),
    0 22px 44px rgba(1, 20, 34, 0.45),
    0 0 24px rgba(60, 180, 235, 0.14);
}

.a29-start-grid article > span {
  position: static;
  display: inline-block;
  border: none;
  padding: 0;
  margin-bottom: 16px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 3.5px;
  color: #7fc6de;
}

.a29-start-grid article > img {
  height: 64px;
  width: 64px;
  filter: drop-shadow(0 6px 12px rgba(20, 90, 130, 0.45));
}

.a29-start-grid h3 {
  letter-spacing: -0.4px;
}

.a29-start-grid p {
  color: #aecfdb;
}

.a29-start-grid a {
  margin-top: 16px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: #8fe5d5;
  border-bottom: 1px solid rgba(143, 229, 213, 0.35);
  padding-bottom: 3px;
  transition:
    color 0.2s ease,
    border-color 0.2s ease;
}

.a29-start-grid a:hover {
  color: #d2fff0;
  border-color: #d2fff0;
}

/* --- FAQ: refined rows with a rotating chevron --- */
.a29-answers > div:first-child {
  position: sticky;
  top: 120px;
}

.a29-answers-note {
  font-size: 12.5px;
  line-height: 1.9;
  color: #a6c8d8;
  margin: 4px 0 26px;
  max-width: 340px;
}

.a29-answers .a29-guide-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 12px 26px;
  border-radius: 12px;
  border: 1px solid #b0d4e3;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.6px;
  color: #215872;
  background: linear-gradient(#ffffff 0%, #e9f9ff 45%, #d1eaf5 49%, #edf9ff 100%);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.75),
    0 6px 16px rgba(0, 28, 68, 0.25);
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    filter 0.2s ease;
}

.a29-answers .a29-guide-link:hover {
  transform: translateY(-2px);
  filter: brightness(1.05);
  box-shadow:
    inset 0 1px #ffffff,
    0 10px 24px rgba(8, 30, 55, 0.35);
}

.a29-faq article {
  border-top: 1px solid rgba(145, 202, 214, 0.22);
  padding: 0 18px;
  margin: 0 -18px;
  border-radius: 14px;
  transition: background 0.25s ease;
}

.a29-faq article:hover {
  background: rgba(140, 210, 235, 0.07);
}

.a29-faq article:last-child {
  border-bottom: 1px solid rgba(145, 202, 214, 0.22);
}

.a29-faq h3 button {
  padding: 24px 0;
  font-size: 13.5px !important;
  font-weight: 600;
}

.a29-faq svg {
  stroke: #9fd8cd;
  transition:
    transform 0.35s cubic-bezier(0.34, 1.3, 0.44, 1),
    stroke 0.2s ease;
}

.a29-faq h3 button:hover svg {
  stroke: #d9f7ec;
}

.a29-faq [aria-expanded='true'] {
  color: #ffffff;
}

.a29-faq [aria-expanded='true'] svg {
  transform: rotate(180deg);
  stroke: #8fe5d5;
}

.a29-faq-panel p {
  color: #b1d2df;
  font-size: 12.5px;
  max-width: 94%;
}

/* --- Collaborate: showcase close --- */
.a29-collaborate {
  background:
    linear-gradient(rgba(5, 38, 56, 0.8), rgba(4, 27, 43, 0.88)),
    url('assets/v28/cafe.webp') center/cover;
}

.a29-collaborate .a29-kicker {
  font-size: 10px;
  letter-spacing: 4px;
  color: #b5f0dd;
  text-shadow: 0 2px 10px rgba(2, 40, 66, 0.8);
}

.a29-collaborate h2 {
  background: linear-gradient(180deg, #ffffff 25%, #c8f2ff 65%, #86d9ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 8px 28px rgba(8, 60, 95, 0.5));
}

.a29-collaborate a {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: #b0e7dc;
  border-bottom: 1px solid rgba(176, 231, 220, 0.35);
  padding-bottom: 3px;
  transition:
    color 0.2s ease,
    border-color 0.2s ease;
}

.a29-collaborate a:hover {
  color: #ffffff;
  border-color: #ffffff;
}

/* --- Footer: structured, themed close --- */
.a29-footer {
  flex-wrap: wrap;
  padding: 54px clamp(22px, 4vw, 75px) 38px;
  background:
    radial-gradient(600px 220px at 50% 0%, rgba(60, 170, 220, 0.12), transparent 70%),
    #041e2e;
}

.a29-footer .a29-brand img {
  width: 52px;
  height: 52px;
}

.a29-footer .a29-brand > span {
  font-size: 26px;
}

.a29-footer .a29-brand small {
  font-size: 7.5px;
  letter-spacing: 2.4px;
  color: #8fc3d8;
}

.a29-footer > div a,
.a29-footer > div button {
  position: relative;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #9dc4d6;
  padding: 8px 2px;
}

.a29-footer > div a::after,
.a29-footer > div button::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2px;
  height: 1px;
  background: linear-gradient(90deg, #59c8ff, #a6efd0);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}

.a29-footer > div a:hover::after,
.a29-footer > div button:hover::after {
  transform: scaleX(1);
}

.a29-footer > small {
  width: 100%;
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid rgba(141, 211, 239, 0.12);
  text-align: center;
  font-size: 9.5px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  opacity: 0.65;
}

@media (max-width: 760px) {
  .a29-answers > div:first-child {
    position: static;
  }

  .a29-faq article {
    padding: 0 12px;
    margin: 0 -12px;
  }

  .a29-footer {
    text-align: center;
    justify-content: center;
  }

  .a29-footer > div {
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .a29-film button::after,
  .a29-film button > span,
  .a29-start-grid article,
  .a29-start-grid a,
  .a29-faq article,
  .a29-faq svg,
  .a29-guide-link,
  .a29-collaborate a,
  .a29-footer > div a::after,
  .a29-footer > div button::after {
    transition: none;
  }
}

/* ================= v29.4 — cinematic landing ================= */

/* --- Hero: slow cinematic drift behind everything --- */
.a29-hero {
  overflow: hidden;
}

.a29-sky {
  background:
    linear-gradient(180deg, rgba(4, 30, 48, 0.3) 0%, rgba(3, 26, 42, 0.52) 52%, rgba(4, 26, 40, 0.96) 100%),
    url('assets/v28/plaza.webp') center 42% / cover;
  animation: a29-drift 38s ease-in-out infinite alternate;
  transform-origin: 50% 42%;
  will-change: transform;
}

@keyframes a29-drift {
  from {
    transform: scale(1);
  }

  to {
    transform: scale(1.07);
  }
}

/* Letterbox vignette + overhead light shaft */
.a29-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(120% 85% at 50% -12%, rgba(150, 224, 255, 0.17), transparent 55%),
    radial-gradient(ellipse at 50% 122%, rgba(2, 17, 31, 0.9), transparent 62%);
}

.a29-hero::after {
  background:
    radial-gradient(ellipse at 50% 30%, transparent 8%, rgba(2, 22, 40, 0.5) 78%),
    linear-gradient(180deg, rgba(2, 16, 28, 0.5), transparent 20% 80%, rgba(2, 16, 28, 0.7));
}

/* Halo of light behind the crest */
.a29-hero-copy::before {
  content: '';
  position: absolute;
  top: -110px;
  left: 50%;
  transform: translateX(-50%);
  width: 460px;
  height: 460px;
  border-radius: 50%;
  z-index: -1;
  background: radial-gradient(circle, rgba(115, 208, 246, 0.2), transparent 65%);
  pointer-events: none;
}

.a29-hero h1 {
  background: linear-gradient(180deg, #ffffff 18%, #dcf6ff 55%, #a5e0f8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-shadow: none;
  filter: drop-shadow(0 12px 32px rgba(3, 38, 66, 0.7));
}

.a29-film {
  height: 150px;
  border-top: 1px solid rgba(160, 225, 250, 0.22);
}

/* --- Section headings: kicker with light rules --- */
.a29-heading .a29-kicker {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.a29-heading .a29-kicker::before,
.a29-heading .a29-kicker::after {
  content: '';
  width: 30px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(139, 220, 199, 0.6));
}

.a29-heading .a29-kicker::after {
  background: linear-gradient(90deg, rgba(139, 220, 199, 0.6), transparent);
}

.a29-heading h2,
.a29-site h2 {
  text-shadow: 0 4px 30px rgba(18, 88, 138, 0.4);
}

/* --- Feature stories ("Find your place" / "Better with company") --- */
.a29-feature .a29-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
}

.a29-feature .a29-kicker::before {
  content: '';
  width: 26px;
  height: 1px;
  background: linear-gradient(90deg, #8bdcc7, transparent);
}

.a29-feature h3::after {
  content: '';
  display: block;
  width: 54px;
  height: 2px;
  margin-top: 18px;
  border-radius: 2px;
  background: linear-gradient(90deg, #59c8ff, #a6efd0);
  opacity: 0.85;
}

.a29-picture {
  border-radius: 18px;
  padding: 8px;
  box-shadow:
    0 24px 60px rgba(1, 22, 38, 0.45),
    inset 0 1px rgba(255, 255, 255, 0.14);
}

.a29-picture img {
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.a29-picture::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 32%, rgba(255, 255, 255, 0.13) 48%, transparent 62%);
  transform: translateX(-130%);
  transition: transform 0.9s ease;
  pointer-events: none;
}

.a29-picture:hover img {
  transform: scale(1.045);
}

.a29-picture:hover::after {
  transform: translateX(130%);
}

/* --- Utility cards: step label + glass icon tile --- */
.a29-utility-grid article {
  padding: 30px 26px 28px;
  border-radius: 20px;
  border: 1px solid rgba(150, 220, 240, 0.22);
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.015) 42%),
    linear-gradient(165deg, rgba(30, 86, 118, 0.4), rgba(7, 34, 52, 0.5));
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.16),
    0 16px 38px rgba(1, 20, 34, 0.35);
  overflow: hidden;
  transition:
    transform 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease;
}

.a29-utility-grid article::before {
  content: '';
  position: absolute;
  top: 0;
  left: 24px;
  right: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(150, 230, 255, 0.55), transparent);
  opacity: 0;
  transition: opacity 0.25s ease;
}

.a29-utility-grid article:hover {
  transform: translateY(-5px);
  border-color: rgba(150, 228, 246, 0.45);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.24),
    0 26px 50px rgba(1, 20, 34, 0.5),
    0 0 30px rgba(60, 180, 235, 0.12);
}

.a29-utility-grid article:hover::before {
  opacity: 1;
}

.a29-utility-grid .a29-step {
  position: static;
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #7fc6de;
}

.a29-utility-grid .a29-step::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(140, 215, 240, 0.4), transparent);
}

.a29-utility-grid img {
  width: 56px;
  height: 56px;
  padding: 14px;
  box-sizing: content-box;
  border-radius: 18px;
  border: 1px solid rgba(165, 225, 245, 0.35);
  background: linear-gradient(160deg, rgba(240, 252, 255, 0.94), rgba(178, 224, 242, 0.86));
  box-shadow:
    0 10px 22px rgba(3, 30, 50, 0.4),
    inset 0 1px #ffffff;
  margin-bottom: 18px;
}

.a29-utility-grid h3 {
  margin: 4px 0 12px;
}

/* --- Token strip: framed glass panel --- */
.a29-token {
  border: 1px solid rgba(150, 220, 240, 0.2);
  border-radius: 22px;
  padding: 32px 36px;
  background:
    linear-gradient(160deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02) 45%),
    linear-gradient(160deg, rgba(28, 84, 116, 0.35), rgba(8, 36, 55, 0.45));
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.14),
    0 18px 44px rgba(1, 20, 34, 0.35);
}

/* --- "Your first minute": cinematic glass panels over a full-bleed scene --- */
.a29-start {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(5, 34, 52, 0.88) 0%, rgba(6, 40, 60, 0.72) 45%, rgba(4, 28, 44, 0.94) 100%),
    url('assets/v29/desktop.webp') center 38% / cover no-repeat,
    #082c42;
}

/* soft light washing down from the top of the scene */
.a29-start::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(70% 60% at 50% -10%, rgba(140, 220, 250, 0.16), transparent 60%);
}

.a29-start > * {
  position: relative;
}

.a29-start-grid {
  gap: 26px;
  align-items: stretch;
}

.a29-start-grid article {
  position: relative;
  overflow: hidden;
  text-align: left;
  padding: 34px 30px 30px;
  border-radius: 18px;
  border: 1px solid rgba(168, 224, 246, 0.22);
  background: linear-gradient(165deg, rgba(18, 62, 88, 0.66), rgba(6, 34, 52, 0.8));
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.13),
    0 26px 54px -24px rgba(1, 15, 27, 0.85);
  transition:
    transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.4s ease,
    box-shadow 0.4s ease;
}

/* light beam across the top edge of each panel */
.a29-start-grid article::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 120px;
  background: linear-gradient(180deg, rgba(190, 238, 255, 0.12), transparent);
  pointer-events: none;
}

.a29-start-grid article:hover {
  transform: translateY(-7px);
  border-color: rgba(168, 224, 246, 0.48);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.18),
    0 36px 70px -26px rgba(1, 15, 27, 0.9),
    0 0 44px rgba(80, 190, 235, 0.16);
}

/* oversized ghost numeral */
.a29-start-grid article > span {
  position: static;
  display: block;
  margin-bottom: 26px;
  padding: 0;
  border: 0;
  border-radius: 0;
  font-size: 74px;
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -3px;
  background: linear-gradient(180deg, rgba(214, 244, 255, 0.95), rgba(120, 190, 222, 0.12));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

/* icon as a small glass tile, top right — only the card's own icon,
   never images inside the wallet chips */
.a29-start-grid article > img {
  position: absolute;
  top: 30px;
  right: 28px;
  width: 30px;
  height: 30px;
  padding: 12px;
  box-sizing: content-box;
  border-radius: 14px;
  border: 1px solid rgba(170, 226, 246, 0.4);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.24), rgba(150, 215, 240, 0.08));
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.35),
    0 10px 22px rgba(2, 22, 38, 0.45);
  filter: none;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.a29-start-grid article:hover img {
  transform: translateY(-4px) rotate(-4deg);
}

.a29-start-grid h3 {
  margin: 0 0 14px;
  font-size: 23px;
  letter-spacing: -0.5px;
  color: #f2fbff;
}

.a29-start-grid p {
  max-width: none;
}

.a29-start-grid a {
  margin-top: 22px;
  padding-bottom: 3px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(143, 229, 213, 0.5);
  transition:
    color 0.25s ease,
    border-color 0.25s ease;
}

.a29-start-grid a:hover {
  color: #d9fff4;
  border-color: #d9fff4;
}

/* --- Collaborate: fix clipped descender, centered single action --- */
.a29-collaborate h2 {
  line-height: 1.16;
  padding-bottom: 0.14em;
  margin-bottom: 14px;
}

.a29-collaborate .a29-button {
  min-width: 224px;
  min-height: 50px;
  margin-top: 6px;
}

/* --- Mobile tightening for the new pieces --- */
@media (max-width: 760px) {
  .a29-film {
    height: 118px;
  }

  .a29-utility-grid {
    grid-template-columns: 1fr;
  }

  .a29-start-grid {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .a29-token {
    flex-direction: column;
    text-align: center;
    padding: 26px 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .a29-sky {
    animation: none;
  }

  .a29-utility-grid article,
  .a29-utility-grid article::before,
  .a29-start-grid img,
  .a29-picture img,
  .a29-picture::after {
    transition: none;
  }
}

/* Intro second line: guaranteed its own line (br was collapsing on mobile) */
.a29-intro-line {
  display: block;
}

@media (prefers-reduced-motion: reduce) {
  .a29-start-grid article,
  .a29-start-grid img {
    transition: none;
  }
}

/* ================= v29.5 — calm cards, wallet chips, dialog polish ================= */

/* "Your first minute": no lift, no icon pop — a quiet glow instead. */
.a29-start-grid article,
.a29-start-grid article:hover {
  transform: none;
}

.a29-start-grid article:hover {
  border-color: rgba(168, 224, 246, 0.5);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.18),
    0 26px 54px -24px rgba(1, 15, 27, 0.85),
    0 0 34px rgba(80, 190, 235, 0.13);
}

.a29-start-grid img,
.a29-start-grid article:hover img {
  transform: none;
}

/* Wallet chips on the "Connect when ready" card. */
.a29-wallets {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 22px;
}

.a29-wallet-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  padding: 7px 6px;
  border-radius: 999px;
  border: 1px solid rgba(170, 226, 246, 0.35);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.16), rgba(150, 215, 240, 0.05));
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.22);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.4px;
  white-space: nowrap;
  color: #dff4ff;
}

/* Beat the start-grid icon rules (those size the corner tiles). */
.a29-start-grid .a29-wallet-chip img {
  width: 18px !important;
  height: 18px !important;
  border-radius: 6px;
  display: block;
  margin: 0;
  filter: none;
  box-shadow:
    0 1px 3px rgba(3, 24, 40, 0.35),
    inset 0 0 0 1px rgba(255, 255, 255, 0.12);
}

.a29-wallets-note {
  display: block;
  margin-top: 12px;
  font-size: 10px;
  letter-spacing: 1px;
  color: #8fb9cc;
}

/* Collaborate dialog: clean themed form. */
.c29-brief .a29-kicker {
  color: #2e86ad;
}

.c29-brief h2 {
  margin: 10px 0 8px;
}

.c29-brief > p {
  color: #4a7285;
}

.c29-brief form {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 18px;
}

.c29-brief label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: #3d6b83;
}

.c29-brief input,
.c29-brief textarea {
  font: inherit;
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: #123f57;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid #a9d4e4;
  background: linear-gradient(#ffffff, #eefaff);
  box-shadow: inset 0 2px 5px rgba(20, 80, 110, 0.08);
  outline: none;
  resize: vertical;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease;
}

.c29-brief input:focus,
.c29-brief textarea:focus {
  border-color: #3aa7dd;
  box-shadow:
    inset 0 2px 5px rgba(20, 80, 110, 0.06),
    0 0 0 3px rgba(70, 180, 230, 0.22);
}

.c29-submit {
  margin-top: 6px;
  min-height: 48px;
}

.c29-submit:disabled {
  opacity: 0.65;
  cursor: wait;
}

/* Reset the Launchpad status-bar styling inside the brief form. */
.c29-brief .c29-status {
  display: block;
  min-height: 16px;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  font-size: 12px;
  text-align: center;
  color: #3d6b83;
}

.c29-brief .c29-status.error {
  color: #c0492f;
}

.c29-done {
  text-align: center;
  padding: 18px 6px 8px;
}

.c29-check {
  width: 58px;
  height: 58px;
  margin-bottom: 12px;
  color: #1f9d6b;
}

.c29-done h2 {
  margin: 0 0 10px;
}

.c29-done p {
  color: #4a7285;
}

.c29-done .a29-button {
  margin-top: 10px;
}

/* Wallet + cloud dialogs: professional rise-and-fade entrance. */
.v23-wallet[open] {
  animation: ac-dialog-in 0.34s cubic-bezier(0.22, 1, 0.36, 1);
}

.v23-wallet::backdrop {
  animation: ac-backdrop-in 0.3s ease;
}

.ac-overlay:not([hidden]) {
  animation: ac-backdrop-in 0.3s ease;
}

.ac-overlay:not([hidden]) .ac-modal {
  animation: ac-dialog-in 0.34s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
  .v23-wallet[open],
  .v23-wallet::backdrop,
  .ac-overlay:not([hidden]),
  .ac-overlay:not([hidden]) .ac-modal {
    animation: none;
  }
}
/* ================= v29.7 — hero launchpad menu ================= */
.a29-launch {
  position: relative;
  display: block;
  width: max-content;
  margin: 16px auto 0;
}
.a29-launch summary {
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 22px 10px 14px;
  border-radius: 16px;
  border: 1px solid rgba(190, 235, 252, 0.5);
  background:
    linear-gradient(150deg, rgba(255, 255, 255, 0.3), rgba(140, 210, 240, 0.1)),
    rgba(10, 45, 66, 0.28);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.45),
    0 14px 34px -14px rgba(2, 22, 36, 0.7),
    0 0 26px rgba(90, 200, 245, 0.14);
  color: #ffffff;
  font: inherit;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  text-shadow: 0 1px 8px rgba(2, 22, 36, 0.55);
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}
.a29-launch summary::-webkit-details-marker { display: none; }
.a29-launch summary::marker { content: none; }
.a29-launch summary:hover {
  transform: translateY(-2px);
  border-color: rgba(215, 245, 255, 0.75);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.55),
    0 20px 40px -14px rgba(2, 22, 36, 0.75),
    0 0 40px rgba(90, 200, 245, 0.24);
}
.a29-launch summary img {
  width: 26px;
  height: 26px;
  object-fit: contain;
  filter: drop-shadow(0 3px 6px rgba(2, 22, 36, 0.5));
  pointer-events: none;
}
.a29-launch summary svg {
  width: 11px;
  height: 11px;
  color: rgba(200, 238, 252, 0.9);
  transition: transform 0.25s ease;
}
.a29-launch[open] summary svg { transform: rotate(180deg); }
.a29-launch > div {
  position: absolute;
  left: 50%;
  top: calc(100% + 10px);
  transform: translateX(-50%);
  min-width: 268px;
  padding: 8px;
  border-radius: 16px;
  border: 1px solid rgba(190, 235, 252, 0.55);
  background: linear-gradient(160deg, rgba(248, 253, 255, 0.96), rgba(219, 241, 251, 0.94));
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.9),
    0 24px 50px -18px rgba(2, 22, 36, 0.65),
    0 0 30px rgba(90, 200, 245, 0.18);
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 30;
  animation: a29LaunchIn 0.24s cubic-bezier(0.2, 0.9, 0.3, 1.2);
}
.a29-launch > div.closing { animation: a29LaunchOut 0.16s ease forwards; }
@keyframes a29LaunchIn {
  from { opacity: 0; transform: translateX(-50%) translateY(-6px) scale(0.97); }
  to { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes a29LaunchOut {
  from { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
  to { opacity: 0; transform: translateX(-50%) translateY(-6px) scale(0.97); }
}
.a29-launch > div a,
.a29-launch > div button {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 14px;
  border-radius: 11px;
  border: 0;
  background: transparent;
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.16s ease, transform 0.16s ease;
}
.a29-launch > div a:hover,
.a29-launch > div button:hover {
  background: rgba(120, 200, 240, 0.22);
  transform: translateX(2px);
}
.a29-launch > div b {
  font-size: 13px;
  font-weight: 800;
  color: #0b3f5c;
  letter-spacing: 0.2px;
}
.a29-launch > div span {
  font-size: 11px;
  font-weight: 600;
  color: rgba(11, 63, 92, 0.72);
  letter-spacing: 0.1px;
}
@media (max-width: 640px) {
  .a29-launch { margin-top: 14px; }
  .a29-launch > div { min-width: min(268px, 86vw); }
}
@media (prefers-reduced-motion: reduce) {
  .a29-launch summary,
  .a29-launch summary svg,
  .a29-launch > div a,
  .a29-launch > div button {
    transition: none;
  }
  .a29-launch > div,
  .a29-launch > div.closing {
    animation: none;
  }
}

/* v29.7b — dim the entry note while the launch menu is open */
.a29-entry-note {
  transition: opacity 0.2s ease;
}
.a29-launch[open] ~ .a29-entry-note {
  opacity: 0 !important; /* overrides the a29p-rise entrance animation fill */
}
@media (prefers-reduced-motion: reduce) {
  .a29-entry-note {
    transition: none;
  }
}

/* v29.8 — console identity, live visualizer, icon upgrades */
.c29-orb {
  display: grid !important;
  place-items: center;
  overflow: hidden;
}
.c29-orb img {
  width: 72%;
  height: 72%;
  object-fit: contain;
  filter: drop-shadow(0 6px 14px rgba(10, 90, 150, 0.35));
}
.c29-badge-live {
  background: linear-gradient(160deg, #d9ffe6, #a9f5c8) !important;
  border-color: #7fd9a5 !important;
  color: #0c6b3a !important;
}
.c29-live-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: #0c6b3a;
  background: linear-gradient(160deg, #e2ffee, #bdf3d6);
  border: 1px solid #8fe0b2;
  box-shadow: inset 0 1px #fff;
}
.c29-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 14px 0 4px;
}
.c29-eco-card h3 {
  display: flex;
  align-items: center;
  gap: 10px;
}
.c29-eco-card h3 .v23-icon {
  width: 26px;
  height: 26px;
  filter: drop-shadow(0 2px 5px rgba(20, 110, 170, 0.3));
}
.c29-pump-sigil {
  display: grid;
  place-items: center;
  overflow: hidden;
}
.c29-pump-sigil img {
  width: 64%;
  height: 64%;
  object-fit: contain;
}
.c29-chart-live {
  padding: 0;
  overflow: hidden;
}
.c29-chart-live iframe {
  width: 100%;
  height: 100%;
  min-height: 420px;
  border: 0;
  border-radius: inherit;
}
.c29-window-icon {
  display: inline-grid;
  place-items: center;
}
.c29-window-icon img {
  width: 18px;
  height: 18px;
  display: block;
}
.c29-launch-dot {
  display: inline-grid !important;
  place-items: center;
}
.c29-launch-dot img {
  width: 20px;
  height: 20px;
  display: block;
}

/* Aerify: bars driven by the real audio signal */
.aeroify-visualizer.live span {
  animation: none !important;
  transition: height 0.06s linear, opacity 0.2s ease;
}

/* First-minute cards: mini app chips */
.a29-card-apps {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}
.a29-card-apps i {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.85), rgba(214, 240, 252, 0.7));
  border: 1px solid rgba(255, 255, 255, 0.9);
  box-shadow: inset 0 1px #fff, 0 6px 14px rgba(30, 100, 150, 0.12);
}
.a29-card-apps .v23-icon {
  width: 24px;
  height: 24px;
}
@media (prefers-reduced-motion: reduce) {
  .aeroify-visualizer.live span {
    transition: none;
  }
}

/* Aerify live volume bars (injected) */
.a29-viz {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 4px;
  height: 40px;
  padding: 6px 14px 2px;
}
.a29-viz span {
  width: 6px;
  height: 8px;
  border-radius: 3px;
  background: linear-gradient(180deg, #bfeaff, #4fb0e8 60%, #2a86c8);
  box-shadow: inset 0 1px rgba(255,255,255,0.85), 0 2px 6px rgba(40,130,190,0.35);
  opacity: 0.55;
  animation: a29-viz-idle 1.8s ease-in-out infinite;
  animation-delay: var(--d, 0s);
}
.a29-viz.live span {
  animation: none;
  opacity: 0.8;
  transition: height 0.06s linear, opacity 0.2s ease;
}
@keyframes a29-viz-idle {
  0%, 100% { height: 7px; }
  50% { height: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .a29-viz span { animation: none; }
  .a29-viz.live span { transition: none; }
}
