:is(.button, button.primary, button.secondary) {
  min-height: 44px;
  padding: 9px 15px;
  border: 1px solid #8973a1;
  border-radius: 10px;
  font: inherit;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
}
:is(.button, button).primary {
  color: #172019;
  background: linear-gradient(155deg, #f0ffc7, #d7f69b);
  border-color: #dafa9d;
  box-shadow: 0 3px 12px #c9f28120;
}
:is(.button, button).secondary {
  color: #f5efff;
  background: #2c223c;
  border-color: #77648c;
}
:is(.button, button).primary:not(:disabled):hover { background: #efffc5; }
:is(.button, button).secondary:not(:disabled):hover { background: #413052; }
:is(.button, button, .contact-topics a):focus-visible {
  outline: 2px solid #e1fbaf;
  outline-offset: 3px;
}
button:disabled { cursor: not-allowed; opacity: .55; }
.site-header nav a[aria-current="page"] { color: var(--accent); }
.contact-layout {
  display: grid;
  grid-template-columns: 1fr minmax(0, .9fr);
  align-items: center;
  gap: clamp(24px, 6vw, 88px);
  padding-block: clamp(36px, 9vw, 112px);
}
.contact-intro h1 { font-size: clamp(3rem, 7vw, 6rem); }
.contact-address { margin-top: 10px; overflow-wrap: anywhere; }
.contact-topics {
  padding: clamp(14px, 3vw, 28px);
  border: 1px solid #665478;
  border-radius: 18px;
  background: linear-gradient(145deg, #342744, #21192e);
  box-shadow: 0 18px 48px #110b1e60;
}
.contact-topics h2 { font-size: clamp(1.35rem, 3vw, 2rem); margin-bottom: 12px; }
.contact-topics a {
  display: flex;
  gap: 12px;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid #665478;
  padding: 13px 4px;
  text-decoration: none;
}
.contact-topics a:hover { color: var(--accent); }
.contact-topics a > span:last-child { color: var(--accent); }
.contact-topics small { display: block; color: #ddd1e8; }
@media (max-width: 720px) {
  .contact-layout { grid-template-columns: 1fr; }
}
@media screen and (prefers-reduced-motion: no-preference) {
  .contact-topics { animation: arrive .5s ease-out both; }
  :is(.button, button.primary, button.secondary) { transition: background-color .18s, transform .18s; }
  :is(.button, button.primary, button.secondary):not(:disabled):active { transform: translateY(1px); }
}

:is(.button, button.primary, button.secondary) { -webkit-tap-highlight-color: #d8f7a332; }
:is(button.button, button.primary, button.secondary):not(:disabled) { cursor: pointer; }
:is(.site-header nav a, .account-nav a, .access-tabs a, .builder-page .top nav a) {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 44px;
  padding: 7px 10px;
  border-radius: 8px;
  text-align: center;
  text-decoration: none;
  line-height: 1.2;
}
:is(.site-header nav a, .account-nav a, .access-tabs a, .builder-page .top nav a):focus-visible {
  outline: 2px solid #e1fbaf;
  outline-offset: -2px;
}
:is(.site-header nav a, .account-nav a, .access-tabs a)[aria-current="page"] {
  background: #37274a;
  color: #e3ffad;
}
.builder-page .top nav { flex-wrap: wrap; gap: 8px; }
.builder-page .top nav a { border: 1px solid #77648c; background: #2c223c; }
.builder-page .line { grid-template-columns: minmax(0,1.6fr) minmax(48px,.55fr) minmax(65px,.75fr) 44px; }
.builder-page .remove-line { width: 44px; padding-inline: 0; }
#member-preview { scroll-margin-top: 14px; }
.replay-motion { min-width: 44px; min-height: 44px; }
.email-access-form input:not([type="hidden"]) { min-height: 48px; font-size: 16px; }

:root[data-paperwork-reduced-motion],
:root[data-paperwork-reduced-motion] *,
:root[data-paperwork-reduced-motion] *::before,
:root[data-paperwork-reduced-motion] *::after {
  animation: none !important;
  transition: none !important;
  scroll-behavior: auto !important;
}
:root[data-paperwork-reduced-motion] .replay-motion { display: none; }

.preferences { border: 0; margin: 0; padding: 0; min-inline-size: 0; }
.preferences legend { font-weight: 700; margin-bottom: 10px; }
.preference {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 64px;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}
.preference small { display: block; color: var(--muted); }
.preference input { width: 23px; height: 23px; margin: 0 8px 0 0; accent-color: var(--accent); flex: none; }
.preference select {
  color: #f5efff;
  background: #2c223c;
  border: 1px solid #77648c;
  border-radius: 8px;
  min-height: 44px;
  padding: 6px 10px;
  font: inherit;
}
.preference :is(input, select):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.preferences .actions { margin-top: 14px; gap: 8px; }
#preferences-status { margin-top: 10px; min-height: 1.5em; }
.account-layout .actions > form { margin: 0; }

@media (max-width: 430px) {
  .preference-design { flex-direction: column; align-items: stretch; gap: 8px; }
  .preferences .actions > button { flex: 1 1 140px; }
}

@media screen and (max-width: 730px) {
  .site-header {
    display: grid;
    grid-template-columns: minmax(0,1fr);
    gap: 12px;
  }
  .site-header nav {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0,1fr);
    width: 100%;
  }
  .site-header nav a { min-width: 0; padding-inline: 3px; font-size: .81rem; overflow-wrap: anywhere; }
  .header-access { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .hero { padding-top: 34px; gap: 22px; }
  .hero h1, .contact-intro h1 { font-size: clamp(2.65rem, 10vw, 4.25rem); }
  .hero .actions > .button { flex: 1 1 145px; }
  .hero-art { min-height: clamp(235px, 63vw, 308px); }
  .contact-intro > .button { width: 100%; max-width: 330px; }
  .contact-topics a { min-height: 54px; }
  .access-layout { align-content: start; padding-top: clamp(28px, 8vh, 64px); }
  .access-tabs a { flex: 1 1 0; min-width: 0; }
  .email-access-form { justify-items: stretch; max-width: none; }
  .account-layout form > .button { width: 100%; }
  .builder-page .workspace { grid-template-columns: minmax(0,1fr); }
  .builder-page .editor, .builder-page .preview { min-width: 0; padding: clamp(12px,4vw,20px); }
  .builder-page :is(input, select):not([type="radio"]) { min-height: 44px; }
  .builder-page .actions > button { flex: 1 1 130px; }
}
@media screen and (max-width: 405px) {
  .builder-page .pair { grid-template-columns: minmax(0,1fr); gap: 0; }
  .builder-page .line { grid-template-columns: minmax(0,1fr) minmax(0,1.3fr) 44px; }
  .builder-page .line label:first-child { grid-column: 1 / -1; margin-bottom: 0; }
  .stage-heading > .button { font-size: .82rem; }
}

/* Site and editor share the same chrome. Document palettes are independent. */
:root {
  --bg: #17131e;
  --background: var(--bg);
  --panel: #211b2b;
  --line: #463b54;
  --ink: #f4eff8;
  --muted: #c2b8cd;
  --accent: #d6edaa;
  --violet-surface: #2d2439;
}
@media screen {
  body { background: radial-gradient(ellipse at 78% 8%, #2b2138, transparent 46%), var(--bg); }
  :is(.hero-art, .studio, .membership, .plan, .access-card, .contact-topics,
      .product-card, .builder-page .editor, .builder-page .preview) {
    border-color: var(--line);
    border-radius: 10px;
  }
  :is(.membership, .contact-topics) { background: linear-gradient(145deg, var(--violet-surface), var(--panel)); }
  :is(.plan, .access-card, .product-card, .builder-page .editor, .builder-page .preview) { background: var(--panel); }
  .stage { background: linear-gradient(155deg, #2c2438, #1d1727); }
  .hero-art { background: radial-gradient(ellipse at 50% 40%, #453451, #241d30 75%); }
  .hero-art .orbit { border-color: #ba9dd04a; box-shadow: 0 0 0 15px #ba9dd00d; }
  .hero-art .hero-light { background: conic-gradient(from 38deg, transparent, #a786c23c, transparent 42%, #c5dfa21b, transparent 69%); }
  .page-aurora::after { background: radial-gradient(ellipse, #a987bf32, transparent 68%); }
  .product-art { background: radial-gradient(ellipse at 50% 85%, #4d3d60, #282033 78%); }
  :is(.theme-card, .types label > span) { background: #1d1726; border-color: var(--line); }
  .choices input:checked + span { background: #393047; border-color: var(--accent); }
  .builder-page :is(input:not([type="radio"]), select, textarea) { background: #17121f; border-color: #665772; }
  .builder-page .line input { color: var(--ink); }
}
:is(.button, button.primary, button.secondary) { border-radius: 7px; }
:is(.button, button).primary { background: var(--accent); border-color: var(--accent); box-shadow: none; }
:is(.button, button).primary:not(:disabled):hover { background: #e5f7c8; }
:is(.button, button).secondary, .builder-page .top nav a { background: var(--violet-surface); }
.button:hover { transform: none; }
.replay-motion { border-radius: 8px; }
.brand-mark { border-radius: 9px; }
