/* Shared website appearance; never applied to the Flutter editor or screenshots. */
:root {
  color-scheme: light;
  --site-surface: #fff;
  --site-header: rgba(250, 248, 244, .94);
  --site-hover-shadow: 0 14px 34px -20px #403d6055;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #14131f;
  --ink: #f2eff8;
  --muted: #b6b0c5;
  --coral: #ff8676;
  --line: #393548;
  --lavender: #242032;
  --white: #211e2c;
  --site-surface: #201d2c;
  --site-header: rgba(24, 22, 35, .95);
  --site-hover-shadow: 0 16px 38px -18px #0009;
}
.header { background: var(--site-header); border-bottom-color: var(--line); }
.theme-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; flex: 0 0 38px;
  padding: 0; border: 1px solid var(--line); border-radius: 50%;
  color: var(--ink); background: transparent; cursor: pointer;
}
.theme-toggle svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.theme-icon-sun { display: none; }
[data-theme="dark"] .theme-icon-sun { display: block; }
[data-theme="dark"] .theme-icon-moon { display: none; }
.nav-end { gap: 16px; }
.menu-toggle { color: var(--ink); }
.learn-feature { background: var(--site-surface); }

[data-theme="dark"] .editorial-band,
[data-theme="dark"] .plans-section { background: #1b1826; }
[data-theme="dark"] .plan-card { background: var(--site-surface); border-color: var(--line); }
[data-theme="dark"] .plan-studio { background: #40354f; border-color: #857296; }
[data-theme="dark"] .plan-card li::before { color: #d6b6f2; }
[data-theme="dark"] .closing-section { background: #272238; }
[data-theme="dark"] .workflow article { border-color: var(--line); }
[data-theme="dark"] .workflow article > span,
[data-theme="dark"] .stage-label,
[data-theme="dark"] .faq-list summary::after { color: #c7b7d8; }
[data-theme="dark"] .stage-orbit { border-color: #4b405c; }
[data-theme="dark"] .orbit-two { background: radial-gradient(ellipse, #6b467733, transparent 65%); }
[data-theme="dark"] .button-outline,
[data-theme="dark"] .legal-document a { color: #e0c9ff; }
[data-theme="dark"] .visual-caption,
[data-theme="dark"] .tool-stage-label { color: var(--ink); background: #211e2cf0; }
[data-theme="dark"] .tool-explorer-heading p,
[data-theme="dark"] .tool-detail p,
[data-theme="dark"] .tool-explorer > .small { color: var(--muted); }
[data-theme="dark"] .tool-stage { background: var(--site-surface); border-color: var(--line); }
[data-theme="dark"] .tool-groups button { color: var(--ink); border-color: var(--line); }
[data-theme="dark"] .tool-groups button[aria-pressed="true"] { background: #57486a; border-color: #a38bb8; }
[data-theme="dark"] .tool-dock { background: #242032f2; border-color: #686071; }
[data-theme="dark"] .tool-dock button { color: var(--ink); }
[data-theme="dark"] .tool-dock button img { filter: brightness(0) invert(1); }
[data-theme="dark"] .tool-dock button:hover { background: #383044; }
[data-theme="dark"] .tool-dock button[aria-pressed="true"] { background: #49333b; border-color: #b6776d; color: #fff; }
[data-theme="dark"] .contact-dialog { background: var(--site-surface); color: var(--ink); border-color: var(--line); }
[data-theme="dark"] .contact-close,
[data-theme="dark"] .contact-dialog label { color: var(--ink); }
[data-theme="dark"] .contact-close { background: var(--lavender); }
[data-theme="dark"] .contact-dialog p,
[data-theme="dark"] .contact-form-actions > a { color: var(--muted); }
[data-theme="dark"] .contact-dialog input,
[data-theme="dark"] .contact-dialog textarea { color: var(--ink); background: #15131e; border-color: #61566e; }
[data-theme="dark"] .contact-dialog input::placeholder,
[data-theme="dark"] .contact-dialog textarea::placeholder { color: #aca3bd; }
[data-theme="dark"] #contact-status { color: #a7dfba; }
[data-theme="dark"] #contact-status.contact-status-error { color: #ffb3a6; }

/* Short responses only on devices with a precise pointer. */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .plan-card, .learn-feature, .workflow article {
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
  }
  .plan-card:hover, .learn-feature:hover {
    transform: translateY(-4px); border-color: var(--coral); box-shadow: var(--site-hover-shadow);
  }
  .workflow article:hover { transform: translateY(-3px); border-color: var(--coral); }
  .button, .theme-toggle, .store-links a { transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
  .button:hover, .store-links a:hover { box-shadow: var(--site-hover-shadow); }
  .store-links a:hover, .theme-toggle:hover { transform: translateY(-2px); }
  .theme-toggle:hover { background: var(--lavender); }
}
.has-motion .reveal-on-scroll {
  opacity: 0; translate: 0 14px;
  transition: opacity .5s ease, translate .5s ease, transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.has-motion .reveal-on-scroll.is-visible { opacity: 1; translate: 0 0; }
@media (max-width: 600px) {
  .learn-home, .legal-home { display: none; }
  .nav-end { gap: 8px; }
}
@media (max-width: 380px) {
  .nav, .learn-nav, .legal-nav { gap: 8px; }
  .nav .brand { font-size: 20px; gap: 8px; }
  .nav .brand img { width: 28px; height: 28px; }
  .nav-end, .learn-nav .nav-end, .legal-nav .nav-end { gap: 4px; }
  .theme-toggle { width: 34px; height: 34px; flex-basis: 34px; }
  .menu-toggle { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal-on-scroll { opacity: 1 !important; translate: none !important; }
}
