/* ===== tokens/colors.css ===== */
/* CreateFiles+ — color tokens
   Source: website/public/styles.css + macOS app (SwiftUI, system accent blue) */

:root {
  /* ---- Base palette (website) ---- */
  --bg: #ffffff;
  --text: #0d1220;
  --text-strong: #111827;
  --text-nav: #222b39;
  --text-caption: #344054;
  --text-legal: #3f4652;
  --muted: #556070;
  --soft: #f7faff;
  --soft-blue: #eef6ff;
  --line: #dce4ee;
  --line-strong: #bdc8d6;
  --accent: #0866ff;
  --accent-dark: #0451d8;
  --accent-soft: #e8f1ff;
  --graphite: #15181d;

  /* ---- Semantic aliases (website) ---- */
  --surface-page: var(--bg);
  --surface-soft: var(--soft);
  --surface-tint: var(--soft-blue);
  --surface-toast: var(--graphite);
  --text-body: var(--text);
  --text-muted: var(--muted);
  --border-default: var(--line);
  --border-strong: var(--line-strong);
  --link-hover: var(--accent);
  --focus-ring: rgba(8, 102, 255, 0.25);

  /* ---- Gradients (only blue-tinted verticals are on-brand) ---- */
  --gradient-hero: linear-gradient(180deg, #ffffff 0%, #ffffff 72%, #f5faff 100%); /* @kind color */
  --gradient-section: linear-gradient(180deg, var(--soft-blue), #f7fbff);
  --gradient-features: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%); /* @kind color */
  --gradient-pricing: linear-gradient(180deg, #f4f9ff 0%, #ffffff 100%); /* @kind color */
  --gradient-legal: linear-gradient(180deg, #ffffff 0%, var(--soft) 100%);

  /* ---- macOS app palette (native SwiftUI, light appearance) ---- */
  --mac-accent: #0a7cff;                       /* system blue tint */
  --mac-accent-soft: rgba(10, 124, 255, 0.12); /* file-type icon chip bg */
  --mac-window: #ffffff;
  --mac-panel: #ececec;                        /* .regularMaterial approximation */
  --mac-card: #e9e9e9;                         /* settings group boxes */
  --mac-control: #e3e3e3;                      /* secondary buttons, segmented track */
  --mac-tile: rgba(255, 255, 255, 0.78);       /* quick-create tiles */
  --mac-text: #1d1d1f;
  --mac-text-secondary: #6e6e73;
  --mac-text-tertiary: #9b9ba0;
  --mac-separator: rgba(0, 0, 0, 0.12);
  --mac-destructive: #e53935;                  /* uninstall trash red */
}

.ga-hero-purchase-option {
  display: grid;
  gap: 10px;
  justify-items: center;
  width: min(100%, 392px);
}

.ga-hero-store-option {
  width: min(100%, 260px);
}

.ga-hero-purchase-option .ga-btn,
.ga-hero-purchase-option .ga-app-store-badge {
  justify-content: center;
  width: 100%;
}

.ga-hero-purchase-note {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.35;
  max-width: 260px;
  text-align: center;
}

.ga-hero-choice {
  align-self: flex-start;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.3;
  margin-top: calc((52px - 1.3em) / 2);
  text-transform: uppercase;
}

.ga-demo-section {
  background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
  border-top: 1px solid var(--line);
  overflow: hidden;
  padding: clamp(80px, 9vw, 120px) clamp(24px, 7vw, 120px);
  scroll-margin-top: 110px;
  text-align: center;
}

.ga-demo-inner {
  margin: 0 auto;
  max-width: 1120px;
}

.ga-demo-title {
  font-size: clamp(34px, 4vw, 52px);
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.06;
  margin: 0 auto;
  max-width: 780px;
}

.ga-demo-copy {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.6;
  margin: 18px auto 0;
  max-width: 650px;
}

.ga-demo-frame {
  background: #ffffff;
  border: 1px solid rgba(189, 200, 214, 0.9);
  border-radius: 18px;
  box-shadow: 0 30px 80px rgba(22, 34, 54, 0.14);
  margin-top: 52px;
  overflow: hidden;
  text-align: left;
}

.ga-demo-frame-bar {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 8px;
  min-height: 44px;
  padding: 0 16px;
}

.ga-demo-frame-bar span {
  border-radius: 50%;
  display: block;
  height: 11px;
  width: 11px;
}

.ga-demo-frame-bar span:nth-child(1) {
  background: #ff5f57;
}

.ga-demo-frame-bar span:nth-child(2) {
  background: #febc2e;
}

.ga-demo-frame-bar span:nth-child(3) {
  background: #28c840;
}

.ga-demo-frame-bar strong {
  color: var(--muted);
  flex: 1;
  font-size: 13px;
  font-weight: 680;
  min-width: 0;
  padding-left: 8px;
  text-align: center;
}

.ga-demo-video {
  aspect-ratio: 1920 / 1358;
  background: #eef3f9;
  display: block;
  height: auto;
  width: 100%;
}

.ga-new-features-section {
  background: #fbfdff;
  border-top: 1px solid var(--line);
  overflow: hidden;
  padding: clamp(80px, 9vw, 120px) clamp(24px, 7vw, 120px);
  scroll-margin-top: 110px;
}

.ga-new-features-inner {
  margin: 0 auto;
  max-width: 1120px;
}

.ga-new-features-header {
  align-items: end;
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(0, 0.95fr) minmax(300px, 0.78fr);
}

.ga-new-features-header h2 {
  font-size: clamp(34px, 4vw, 52px);
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.06;
  margin: 0;
}

.ga-new-features-header p {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.62;
  margin: 0;
}

.ga-new-feature-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 52px;
}

.ga-new-feature-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 18px 54px rgba(22, 34, 54, 0.07);
  display: grid;
  gap: 14px;
  height: 100%;
  padding: 24px;
}

.ga-new-feature-icon {
  align-items: center;
  background: var(--accent-soft);
  border-radius: 10px;
  color: var(--accent);
  display: flex;
  height: 46px;
  justify-content: center;
  width: 46px;
}

.ga-new-feature-card h3 {
  color: var(--text);
  font-size: 18px;
  font-weight: 770;
  letter-spacing: 0;
  line-height: 1.2;
  margin: 0;
}

.ga-new-feature-card p {
  color: var(--muted);
  font-size: 14.5px;
  line-height: 1.55;
  margin: 0;
}

.ga-new-feature-card span {
  align-self: end;
  border-top: 1px solid var(--line);
  color: var(--text-caption);
  font-size: 12.5px;
  font-weight: 650;
  line-height: 1.45;
  margin-top: 4px;
  padding-top: 14px;
}

.ga-template-packs {
  align-items: start;
  background:
    radial-gradient(760px 340px at 0% 0%, rgba(8, 102, 255, 0.09), transparent 70%),
    #ffffff;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 28px 70px rgba(22, 34, 54, 0.09);
  display: grid;
  gap: 34px;
  grid-template-columns: minmax(0, 0.72fr) minmax(340px, 1fr);
  margin-top: 18px;
  padding: clamp(26px, 4vw, 38px);
}

.ga-template-packs-copy h3 {
  color: var(--text);
  font-size: clamp(24px, 2.3vw, 32px);
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.1;
  margin: 0;
}

.ga-template-packs-copy p {
  color: var(--muted);
  font-size: 15.5px;
  line-height: 1.62;
  margin: 16px 0 0;
}

.ga-template-pack-list {
  display: grid;
  gap: 10px;
}

.ga-template-pack-row {
  align-items: center;
  background: #f8fbff;
  border: 1px solid var(--line);
  border-radius: 10px;
  display: grid;
  gap: 8px;
  grid-template-columns: 132px 1fr;
  min-height: 58px;
  padding: 12px 14px;
}

.ga-template-pack-row strong {
  color: var(--text);
  font-size: 14px;
  font-weight: 760;
}

.ga-template-pack-row span {
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.4;
}

.ga-screenshot-showcase {
  align-items: stretch;
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(0, 1.58fr) minmax(300px, 0.72fr);
  margin-top: 64px;
  text-align: left;
}

.ga-screenshot-frame {
  background: linear-gradient(180deg, #ffffff 0%, #f7faff 100%);
  border: 1px solid rgba(189, 200, 214, 0.9);
  border-radius: 18px;
  box-shadow: 0 30px 80px rgba(22, 34, 54, 0.14);
  min-width: 0;
  overflow: hidden;
}

.ga-screenshot-frame-bar {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 8px;
  min-height: 44px;
  padding: 0 16px;
}

.ga-screenshot-frame-bar span {
  border-radius: 50%;
  display: block;
  height: 11px;
  width: 11px;
}

.ga-screenshot-frame-bar span:nth-child(1) {
  background: #ff5f57;
}

.ga-screenshot-frame-bar span:nth-child(2) {
  background: #febc2e;
}

.ga-screenshot-frame-bar span:nth-child(3) {
  background: #28c840;
}

.ga-screenshot-frame-bar strong {
  color: var(--muted);
  flex: 1;
  font-size: 13px;
  font-weight: 680;
  min-width: 0;
  padding-left: 8px;
  text-align: center;
}

.ga-screenshot-stage {
  align-items: center;
  background:
    radial-gradient(700px 360px at 50% 20%, rgba(8, 102, 255, 0.08), transparent 70%),
    #f9fbff;
  display: flex;
  height: 690px;
  justify-content: center;
  overflow: hidden;
  padding: clamp(16px, 2.4vw, 28px);
}

.ga-screenshot-stage img {
  animation: ga-screenshot-fade 520ms ease both;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 24px 60px rgba(22, 34, 54, 0.16);
  display: block;
  height: auto;
  max-height: 690px;
  max-width: 108%;
  object-fit: contain;
  width: auto;
}

.ga-screenshot-stage img.is-portrait {
  max-height: none;
  max-width: none;
  width: min(92%, 640px);
}

.ga-screenshot-stage img.is-contained-batch,
.ga-screenshot-stage img.is-contained-menu,
.ga-screenshot-stage img.is-contained-flywheel,
.ga-screenshot-stage img.is-contained-shortcuts {
  height: auto;
  max-height: calc(100% - 12px);
  max-width: calc(100% - 12px);
  width: auto;
}

.ga-screenshot-info {
  align-self: stretch;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 22px 60px rgba(22, 34, 54, 0.08);
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(22px, 3vw, 32px);
}

.ga-screenshot-label {
  color: var(--accent);
  font-size: 12px;
  font-weight: 820;
  letter-spacing: 0.15em;
  margin: 0 0 14px;
  text-transform: uppercase;
}

.ga-screenshot-info h3 {
  color: var(--text);
  font-size: clamp(26px, 2.6vw, 36px);
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.08;
  margin: 0;
}

.ga-screenshot-description {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.62;
  margin: 18px 0 0;
}

.ga-screenshot-steps {
  display: grid;
  gap: 10px;
  margin-top: auto;
  padding-top: 28px;
}

.ga-screenshot-steps button {
  align-items: center;
  background: #f8fbff;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--text);
  cursor: pointer;
  display: grid;
  gap: 4px 12px;
  grid-template-columns: auto 1fr;
  min-height: 68px;
  padding: 11px 13px;
  text-align: left;
  transition: background 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.ga-screenshot-steps button:hover,
.ga-screenshot-steps button:focus-visible {
  border-color: rgba(8, 102, 255, 0.38);
  box-shadow: 0 12px 26px rgba(22, 34, 54, 0.08);
  outline: none;
  transform: translateY(-1px);
}

.ga-screenshot-steps button.is-active {
  background: var(--accent-soft);
  border-color: rgba(8, 102, 255, 0.38);
}

.ga-screenshot-steps button span {
  color: var(--accent);
  font-size: 12px;
  font-weight: 760;
  grid-row: span 2;
}

.ga-screenshot-steps button strong {
  font-size: 14.5px;
  font-weight: 760;
}

.ga-screenshot-steps button em {
  color: var(--muted);
  font-size: 12.5px;
  font-style: normal;
}

@keyframes ga-screenshot-fade {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.985);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.rd-file-wheel-demo {
  --rd-wheel-blue: #2f6df6;
  --rd-wheel-blue-deep: #1e5fe6;
  --rd-wheel-blue-glow: rgba(47, 109, 246, 0.55);
  --rd-wheel-green: #1f9d4d;
  --rd-wheel-orange: #e8551f;
  --rd-wheel-purple: #6b30c9;
  --rd-wheel-ink: #1c1d21;
  --rd-wheel-ink-soft: #3a3c42;
  display: flex;
  justify-content: center;
  padding-bottom: 34px;
  width: 420px;
}

.rd-hero-wheel-animation {
  aspect-ratio: 1;
  display: block;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  width: min(420px, calc(100vw - 44px));
  filter: drop-shadow(0 30px 62px rgba(40, 52, 84, 0.22));
}

.rd-file-wheel-wrap {
  aspect-ratio: 1;
  position: relative;
  width: 380px;
}

.rd-file-wheel {
  animation: rd-file-wheel-ring-in 0.8s 1.15s cubic-bezier(0.22, 0.9, 0.28, 1) both;
  background:
    radial-gradient(circle at 50% 42%, #f3f4f8 0%, #e9ebf1 58%, #dfe2ea 100%);
  border-radius: 50%;
  box-shadow:
    0 30px 70px -28px rgba(40, 52, 84, 0.4),
    0 8px 22px -12px rgba(40, 52, 84, 0.25),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  inset: 0;
  opacity: 0;
  overflow: hidden;
  position: absolute;
  transform: scale(0.82);
}

.rd-file-wheel-layer {
  display: block;
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
}

.rd-file-wheel-segment {
  fill: transparent;
  transition: fill 0.45s ease;
}

.rd-file-wheel-segment.is-active {
  fill: var(--rd-wheel-blue);
}

.rd-file-wheel-segment.is-deep {
  fill: url("#rdFileWheelSegGrad");
}

.rd-file-wheel-divider {
  stroke: #d7dbe3;
  stroke-width: 1.4;
}

.rd-file-wheel-sweep {
  transition: opacity 0.12s linear;
}

.rd-file-wheel-tiles {
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 5;
}

.rd-file-wheel-slice {
  position: static;
}

.rd-file-wheel-tile {
  align-items: center;
  animation: rd-file-wheel-tile-pop 0.52s cubic-bezier(0.34, 1.5, 0.5, 1) both;
  aspect-ratio: 1;
  background: linear-gradient(180deg, #ffffff 0%, #f1f3f7 100%);
  border-radius: 18px;
  box-shadow:
    0 6px 14px -6px rgba(40, 52, 84, 0.32),
    0 2px 5px -2px rgba(40, 52, 84, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.95);
  display: flex;
  justify-content: center;
  opacity: 0;
  position: absolute;
  transform: translate(-50%, -50%) scale(1);
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.5, 1), box-shadow 0.4s ease;
  width: clamp(52px, 14.23%, 74px);
  z-index: 3;
}

.rd-file-wheel-tile svg {
  display: block;
  height: 46%;
  width: 46%;
}

.rd-file-wheel-label {
  animation: rd-file-wheel-label-in 0.4s ease both;
  color: var(--rd-wheel-ink-soft);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
  opacity: 0;
  position: absolute;
  transform: translate(-50%, -50%);
  transition: color 0.4s ease;
  white-space: nowrap;
  z-index: 3;
}

.rd-file-wheel-demo.is-intro-cleared .rd-file-wheel-tile,
.rd-file-wheel-demo.is-intro-cleared .rd-file-wheel-label,
.rd-file-wheel-demo.is-reduced .rd-file-wheel-tile,
.rd-file-wheel-demo.is-reduced .rd-file-wheel-label {
  animation: none;
  opacity: 1;
}

.rd-file-wheel-slice.is-on .rd-file-wheel-tile {
  box-shadow:
    0 12px 26px -8px var(--rd-wheel-blue-glow),
    0 4px 10px -3px rgba(47, 109, 246, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.95);
  transform: translate(-50%, -50%) scale(1.12);
}

.rd-file-wheel-slice.is-on .rd-file-wheel-label {
  color: #ffffff;
}

.rd-file-wheel-slice.word.is-on .rd-file-wheel-tile {
  background: linear-gradient(180deg, #dbe8ff 0%, #c3d8ff 100%);
}

.rd-file-wheel-hub {
  align-items: center;
  animation: rd-file-wheel-hub-pop 0.6s 0.08s cubic-bezier(0.34, 1.56, 0.5, 1) both;
  aspect-ratio: 1;
  background: radial-gradient(circle at 50% 38%, #ffffff 0%, #f4f5f8 70%, #e9ebf1 100%);
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  box-shadow:
    0 18px 40px -16px rgba(40, 52, 84, 0.4),
    0 4px 12px -4px rgba(40, 52, 84, 0.25),
    inset 0 2px 3px rgba(255, 255, 255, 0.95),
    inset 0 -10px 22px -10px rgba(40, 52, 84, 0.12);
  color: var(--rd-wheel-ink);
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: center;
  left: 50%;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 36.15%;
  z-index: 6;
}

.rd-file-wheel-hub svg {
  animation: rd-file-wheel-hub-content-in 0.4s 0.42s ease both;
  height: 24.5%;
  width: 24.5%;
}

.rd-file-wheel-hub-text {
  animation: rd-file-wheel-hub-content-in 0.4s 0.54s ease both;
  color: var(--rd-wheel-ink);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0;
}

.rd-file-wheel-cta {
  align-items: center;
  background: linear-gradient(180deg, #3f78f8 0%, #1e5fe6 100%);
  border-radius: 16px;
  bottom: -16px;
  box-shadow:
    0 16px 34px -12px var(--rd-wheel-blue-glow),
    0 5px 14px -5px rgba(30, 95, 230, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
  color: #ffffff;
  display: flex;
  font-size: 17px;
  font-weight: 650;
  gap: 9px;
  left: 50%;
  letter-spacing: 0;
  opacity: 0;
  padding: 14px 26px;
  pointer-events: none;
  position: absolute;
  text-decoration: none;
  transform: translate(-50%, 16px) scale(0.96);
  transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 0.9, 0.28, 1);
  white-space: nowrap;
  z-index: 8;
}

.rd-file-wheel-cta.is-showing {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0) scale(1);
}

@keyframes rd-file-wheel-ring-in {
  from {
    opacity: 0;
    transform: scale(0.82);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes rd-file-wheel-hub-pop {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.4);
  }

  60% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.08);
  }

  100% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}

@keyframes rd-file-wheel-hub-content-in {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes rd-file-wheel-tile-pop {
  from {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.55);
  }

  60% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.06);
  }

  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}

@keyframes rd-file-wheel-label-in {
  from {
    opacity: 0;
    transform: translate(-50%, -50%) translateY(4px);
  }

  to {
    opacity: 1;
    transform: translate(-50%, -50%) translateY(0);
  }
}

.ga-primary-nav .ga-nav-link {
  white-space: nowrap;
}

@media (max-width: 720px) {
  html,
  body,
  #root,
  main,
  section {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .ga-header {
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    justify-content: center !important;
    padding: 12px !important;
  }

  .ga-header > a:first-child {
    flex: 1 1 100% !important;
    justify-content: center !important;
  }

  .ga-primary-nav {
    flex: 1 1 100% !important;
    flex-wrap: wrap !important;
    gap: 18px !important;
    justify-content: center !important;
    max-width: 100% !important;
  }

  .ga-primary-nav .ga-nav-link {
    font-size: 13px !important;
    white-space: nowrap !important;
  }

  .ga-header > .ga-btn {
    display: none !important;
  }

  .ga-hero-actions {
    align-items: center !important;
    flex-direction: column !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
  }

  .ga-hero-actions .ga-btn {
    flex: 0 0 auto !important;
    min-width: 220px !important;
    white-space: nowrap !important;
  }

  .ga-hero-purchase-option {
    max-width: 340px !important;
    width: 100% !important;
  }

  .ga-hero-choice {
    align-self: center !important;
    margin: 0 !important;
  }

  .ga-demo-section {
    padding: 70px 18px !important;
  }

  .ga-demo-title {
    font-size: 32px !important;
  }

  .ga-demo-copy {
    font-size: 15px !important;
  }

  .ga-demo-frame {
    border-radius: 14px !important;
    margin-top: 34px !important;
  }

  .ga-new-features-section {
    padding: 70px 18px !important;
  }

  .ga-new-features-header {
    gap: 18px !important;
    grid-template-columns: 1fr !important;
  }

  .ga-new-features-header h2 {
    font-size: 32px !important;
  }

  .ga-new-feature-grid {
    grid-template-columns: 1fr !important;
    margin-top: 36px !important;
  }

  .ga-new-feature-card {
    padding: 22px !important;
  }

  .ga-template-packs {
    gap: 24px !important;
    grid-template-columns: 1fr !important;
    margin-top: 16px !important;
    padding: 22px !important;
  }

  .ga-template-pack-row {
    align-items: start !important;
    grid-template-columns: 1fr !important;
  }

  .ga-screenshot-showcase {
    gap: 18px !important;
    grid-template-columns: 1fr !important;
    margin-top: 46px !important;
  }

  .ga-screenshot-stage {
    height: 430px !important;
    padding: 14px !important;
  }

  .ga-screenshot-stage img {
    max-height: 430px !important;
    max-width: 112% !important;
  }

  .ga-screenshot-stage img.is-portrait {
    max-height: none !important;
    width: min(96%, 380px) !important;
  }

  .ga-screenshot-stage img.is-contained-batch,
  .ga-screenshot-stage img.is-contained-menu,
  .ga-screenshot-stage img.is-contained-flywheel,
  .ga-screenshot-stage img.is-contained-shortcuts {
    height: auto !important;
    max-height: calc(100% - 8px) !important;
    max-width: calc(100% - 8px) !important;
    width: auto !important;
  }

  .ga-screenshot-info {
    padding: 22px !important;
  }

  .ga-screenshot-steps {
    margin-top: 24px !important;
    padding-top: 0 !important;
  }

  .rd-file-wheel-demo {
    padding-bottom: 36px !important;
    width: calc(100vw - 32px) !important;
  }

  .rd-hero-wheel-animation {
    width: min(560px, calc(100vw - 36px)) !important;
  }

  .rd-file-wheel-wrap {
    width: min(520px, calc(100vw - 48px)) !important;
  }

  .rd-file-wheel-cta {
    display: none !important;
  }

  .ga-release-note {
    grid-template-columns: 1fr !important;
    gap: 26px !important;
    padding: 30px 0 !important;
  }

  .ga-release-note-category {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
}

@media (max-width: 520px) {
  .rd-file-wheel-tile {
    border-radius: 14px;
  }

  .rd-file-wheel-label {
    font-size: 12px;
  }

  .rd-file-wheel-hub {
    gap: 7px;
  }

  .rd-file-wheel-hub-text {
    font-size: 18px;
  }

  .rd-file-wheel-cta {
    border-radius: 14px;
    font-size: 14px;
    padding: 11px 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rd-file-wheel,
  .rd-file-wheel-hub,
  .rd-file-wheel-hub svg,
  .rd-file-wheel-hub-text,
  .rd-file-wheel-tile,
  .rd-file-wheel-label {
    animation: none !important;
    opacity: 1 !important;
  }

  .rd-file-wheel,
  .rd-file-wheel-hub {
    transform: translate(-50%, -50%) scale(1);
  }

  .rd-file-wheel {
    transform: scale(1);
  }

  .rd-file-wheel-cta {
    transition: none !important;
  }

}


/* ===== tokens/typography.css ===== */
/* CreateFiles+ — typography tokens
   Primary face: Geist (variable 100–900, OFL — fonts/Geist-Variable.woff2), a close
   SF Pro analogue so the brand renders identically off-Apple. SF-style system faces
   remain in the fallback stack. Weights are variable-axis values (560, 620, 730, 820 …). */

@font-face {
  font-family: "Geist";
  src: url("fonts/Geist-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --font-sans: "Geist", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", sans-serif;
  --font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;

  /* ---- Weights (Geist variable axis) ---- */
  --weight-regular: 400;
  --weight-medium: 560;
  --weight-semibold: 620;
  --weight-strong: 650;
  --weight-bold: 730;
  --weight-heavy: 770;
  --weight-display: 820;

  /* ---- Sizes ---- */
  --text-hero: clamp(54px, 6.4vw, 86px);        /* h1, weight 820, lh 1.02 */
  --text-section: clamp(34px, 4.2vw, 56px);     /* h2, weight 800, lh 1.06 */
  --text-legal-title: clamp(44px, 5vw, 72px);   /* legal h1, weight 820, lh 1 */
  --text-lede: clamp(18px, 1.55vw, 22px);       /* hero lede, lh 1.48 */
  --text-card-title: 20px;                      /* h3, weight 770, lh 1.2 */
  --text-body-size: 16px;                       /* body, lh 1.5 */
  --text-small: 15px;                           /* feature copy, buttons */
  --text-caption-size: 14px;                    /* nav links, footers */
  --text-kicker: 12px;                          /* uppercase kickers, weight 820 */

  /* ---- Details ---- */
  --tracking-kicker: 0.15em;   /* the only letter-spacing used; everywhere else 0 */
  --leading-hero: 1.02;
  --leading-section: 1.06;
  --leading-body: 1.5;
  --leading-lede: 1.48;
}


/* ===== tokens/spacing.css ===== */
/* CreateFiles+ — spacing, radii, shadows, motion */

:root {
  /* ---- Corner radii: tight, utilitarian. Never pill buttons. ---- */
  --radius-control: 6px;     /* small controls, toast close */
  --radius-button: 7px;      /* all buttons */
  --radius-card: 8px;        /* icon tiles, toast, brand icon img, mac tiles */
  --radius-mac-panel: 10px;  /* macOS group boxes / panels */

  /* ---- Spacing scale (px) ---- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;

  /* ---- Page rhythm ---- */
  --page-pad-x: clamp(20px, 7vw, 118px);     /* every site section */
  --section-pad-y: clamp(72px, 9vw, 118px);

  /* ---- Shadows: large, soft, cool-tinted; no hard edges ---- */
  --shadow: 0 24px 70px rgba(22, 34, 54, 0.14);            /* hero/media */
  --shadow-media: 0 28px 70px rgba(22, 34, 54, 0.12);      /* screenshots */
  --shadow-card: 0 18px 54px rgba(22, 34, 54, 0.10);       /* screen figures */
  --shadow-icon: 0 10px 24px rgba(40, 72, 112, 0.08);      /* icon tiles */
  --shadow-button: 0 14px 28px rgba(8, 102, 255, 0.22);    /* primary CTA */
  --shadow-toast: 0 20px 50px rgba(0, 0, 0, 0.22);         /* graphite toast */
  --shadow-icon-glow: drop-shadow(0 24px 34px rgba(8, 102, 255, 0.18));

  /* ---- Motion: one duration, one curve. No bounces, no springs. ---- */
  --duration: 160ms; /* @kind other */
  --ease: ease; /* @kind other */
  --transition-color: color 160ms ease;
  --transition-button: transform 160ms ease, border-color 160ms ease,
    background 160ms ease, color 160ms ease, box-shadow 160ms ease; /* @kind other */

  /* ---- Control heights ---- */
  --button-height: 50px;
  --button-height-small: 42px;
  --mac-tile-height: 58px;
  --mac-input-height: 34px;
}
