/* SciNTech — one design system for the hub and every app (spec 0069 §5).
   Colour tokens are named --c-*; every --c-* set for the light theme is set again for the
   dark theme, twice: under prefers-color-scheme (unless the visitor chose light) and under
   [data-theme="dark"] (the visitor chose dark). tools/check_site.py fails if the two dark
   blocks differ or miss a token, and measures WCAG contrast of the text pairs.
   Per-app accent: <body data-app="wmr"> or <body data-app="looper"> on an app page; any
   element may carry data-app to take that app's accent (hub app cards). None = hub accent.

   Components (class → use):
     .site-header/.nav      shared header: brand, app switcher, hub links, theme toggle
     .app-nav               second bar inside an app: Home · How it works · Examples ·
                            Compatibility · Privacy + .button.primary[data-cta] (S2/S3)
     .button.primary|.secondary[data-cta="wmr|looper"]   50 px CTAs (§5.4 cmp-cta)
     .card, .app-card, .value, .note-band, .callout, .faq, .table-wrap, .breadcrumb
     .site-footer .footer-rights   ownership line F1 — Watermark Remover pages only
   .ex-card/.cmp/.cmp-layer   measured examples: in assets/examples.css, linked only by the
                              two pages that show examples, so no other page pays for it (S4) */

:root {
  color-scheme: light;
  --c-bg: #f6f4ef;
  --c-surface: #ffffff;
  --c-surface-2: #ebe8e0;
  --c-edge: #d6d1c4;
  --c-shadow: #d4cebf;
  --c-text: #1d1e22;
  --c-muted: #4d5058;
  --c-band-bg: #26272c;
  --c-band-text: #f3f1ea;
  --c-header: rgba(246, 244, 239, .9);
  --c-accent: #34438a;
  --c-accent-bg: #34438a;
  --c-accent-ink: #ffffff;
  --c-accent-soft: #e2e5f2;
  --c-mint: #1b6d3d;
  --c-orange: #9a4b17;

  --radius: 12px;
  --mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;
  --serif: ui-serif, Georgia, "Times New Roman", serif;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
  font-synthesis: none;
}

[data-app="wmr"] {
  --c-accent: #1b6d3d;
  --c-accent-bg: #1b6d3d;
  --c-accent-ink: #ffffff;
  --c-accent-soft: #dcefe1;
}

[data-app="looper"] {
  --c-accent: #9a4b17;
  --c-accent-bg: #a54810;
  --c-accent-ink: #ffffff;
  --c-accent-soft: #f7e4d0;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --c-bg: #15161a;
    --c-surface: #1e1f24;
    --c-surface-2: #29292e;
    --c-edge: #383a41;
    --c-shadow: #0a0b0d;
    --c-text: #f1efe9;
    --c-muted: #b4b6be;
    --c-band-bg: #29292e;
    --c-band-text: #f1efe9;
    --c-header: rgba(21, 22, 26, .9);
    --c-accent: #aab6ff;
    --c-accent-bg: #aab6ff;
    --c-accent-ink: #15161a;
    --c-accent-soft: #262a3f;
    --c-mint: #89d99f;
    --c-orange: #f69536;
  }
  :root:not([data-theme="light"]) [data-app="wmr"] {
    --c-accent: #89d99f;
    --c-accent-bg: #89d99f;
    --c-accent-ink: #15161a;
    --c-accent-soft: #1f3326;
  }
  :root:not([data-theme="light"]) [data-app="looper"] {
    --c-accent: #f69536;
    --c-accent-bg: #f69536;
    --c-accent-ink: #15161a;
    --c-accent-soft: #3a2a1d;
  }
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --c-bg: #15161a;
  --c-surface: #1e1f24;
  --c-surface-2: #29292e;
  --c-edge: #383a41;
  --c-shadow: #0a0b0d;
  --c-text: #f1efe9;
  --c-muted: #b4b6be;
  --c-band-bg: #29292e;
  --c-band-text: #f1efe9;
  --c-header: rgba(21, 22, 26, .9);
  --c-accent: #aab6ff;
  --c-accent-bg: #aab6ff;
  --c-accent-ink: #15161a;
  --c-accent-soft: #262a3f;
  --c-mint: #89d99f;
  --c-orange: #f69536;
}
:root[data-theme="dark"] [data-app="wmr"] {
  --c-accent: #89d99f;
  --c-accent-bg: #89d99f;
  --c-accent-ink: #15161a;
  --c-accent-soft: #1f3326;
}
:root[data-theme="dark"] [data-app="looper"] {
  --c-accent: #f69536;
  --c-accent-bg: #f69536;
  --c-accent-ink: #15161a;
  --c-accent-soft: #3a2a1d;
}

/* ---------- base ---------- */

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; min-width: 320px; background: var(--c-bg); color: var(--c-text); line-height: 1.65; }
img, svg, picture { display: block; max-width: 100%; }
a { color: var(--c-accent); text-underline-offset: .2em; }
p { margin: 0 0 1rem; }
h1, h2, h3 { margin: 0; line-height: 1.08; letter-spacing: -.03em; text-wrap: balance; }
h1 { font-size: clamp(2.5rem, 7vw, 5.2rem); max-width: 15ch; }
h2 { font-size: clamp(1.8rem, 4.2vw, 3rem); max-width: 22ch; }
h3 { font-size: 1.18rem; letter-spacing: -.01em; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 3px; border-radius: 4px; }

.skip-link { position: fixed; top: 8px; left: 8px; z-index: 100; transform: translateY(-160%); padding: .7rem 1rem; background: var(--c-accent-bg); color: var(--c-accent-ink); font-weight: 700; text-decoration: none; border-radius: 8px; }
.skip-link:focus { transform: none; }

.wrap { width: min(1140px, calc(100% - 32px)); margin-inline: auto; }
.narrow { width: min(760px, calc(100% - 32px)); margin-inline: auto; }

/* ---------- header ---------- */

.site-header { position: sticky; top: 0; z-index: 30; background: var(--c-header); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--c-edge); }
.nav { min-height: 68px; display: flex; align-items: center; gap: 14px 22px; flex-wrap: wrap; padding-block: 8px; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--c-text); font-weight: 780; font-size: 1.08rem; letter-spacing: -.02em; text-decoration: none; white-space: nowrap; }
.brand img { width: 32px; height: 32px; flex: none; border-radius: 8px; }
.nav-links { display: flex; align-items: center; flex-wrap: wrap; gap: 2px; margin-left: auto; }
.nav-links a { min-height: 44px; display: inline-flex; align-items: center; padding: .4rem .7rem; color: var(--c-muted); font-size: .92rem; font-weight: 620; text-decoration: none; border-radius: 8px; }
.nav-links a:hover { color: var(--c-text); background: var(--c-surface-2); }
.nav-links a[aria-current="page"] { color: var(--c-text); box-shadow: inset 0 -3px 0 var(--c-accent); border-radius: 8px 8px 2px 2px; }
.nav-app::before { content: ""; width: 9px; height: 9px; margin-right: 8px; border-radius: 2px; transform: skewX(-18deg); background: var(--app-dot, var(--c-accent)); }
.nav-app[data-app-link="wmr"] { --app-dot: var(--c-mint); }
.nav-app[data-app-link="looper"] { --app-dot: var(--c-orange); }
.nav-sep { width: 1px; height: 22px; margin-inline: 8px; background: var(--c-edge); }

.theme-toggle { width: 44px; height: 44px; display: inline-grid; place-items: center; padding: 0; color: var(--c-text); background: var(--c-surface); border: 1px solid var(--c-edge); border-radius: 10px; cursor: pointer; }
.theme-toggle[hidden] { display: inline-grid; visibility: hidden; } /* reserves space: no layout shift when JS reveals it */
.theme-toggle:hover { background: var(--c-surface-2); }
.theme-toggle svg { width: 20px; height: 20px; }
.theme-toggle .i-sun { display: none; }
.theme-toggle[aria-pressed="true"] .i-sun { display: block; }
.theme-toggle[aria-pressed="true"] .i-moon { display: none; }

/* App bar (S2/S3): <nav class="app-nav" aria-label="Watermark Remover"> */
.app-nav { border-bottom: 1px solid var(--c-edge); background: var(--c-surface); }
.app-nav .wrap { display: flex; align-items: center; gap: 4px 6px; flex-wrap: wrap; min-height: 56px; }
.app-nav a { min-height: 44px; display: inline-flex; align-items: center; padding: .3rem .65rem; color: var(--c-muted); font-size: .9rem; font-weight: 620; text-decoration: none; border-radius: 8px; }
.app-nav a[aria-current="page"] { color: var(--c-accent); }
.app-nav .button { margin-left: auto; min-height: 44px; }

.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 22px; padding: 0; list-style: none; color: var(--c-muted); font-family: var(--mono); font-size: .8rem; }
.breadcrumb li + li::before { content: "/"; margin-right: 4px; }
.breadcrumb a { color: var(--c-muted); }

/* ---------- atoms ---------- */

.eyebrow { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px; color: var(--c-accent); font-family: var(--mono); font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 14px; height: 10px; background: currentColor; transform: skewX(-18deg); }

.facet-strip { display: flex; gap: 5px; height: 10px; margin-top: 28px; }
.facet-strip i { transform: skewX(-18deg); border-radius: 2px; }
.facet-strip i:nth-child(1) { width: 72px; background: var(--c-mint); }
.facet-strip i:nth-child(2) { width: 44px; background: var(--c-orange); }
.facet-strip i:nth-child(3) { width: 28px; background: var(--c-accent); }
.facet-strip i:nth-child(4) { width: 16px; background: var(--c-muted); }

.lede { max-width: 620px; margin-top: 24px; color: var(--c-muted); font-size: clamp(1.08rem, 2vw, 1.3rem); line-height: 1.55; }

.button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: .75rem 1.25rem; border-radius: 10px; font-weight: 720; text-decoration: none; transition: translate .12s ease, box-shadow .12s ease; }
.button.primary { background: var(--c-accent-bg); color: var(--c-accent-ink); box-shadow: 4px 4px 0 var(--c-shadow); }
.button.secondary { background: var(--c-surface); color: var(--c-text); border: 2px solid var(--c-edge); box-shadow: 4px 4px 0 var(--c-shadow); }
.button:hover { translate: 2px 2px; box-shadow: 2px 2px 0 var(--c-shadow); }
.button.secondary:hover { border-color: var(--c-accent); }

.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.proof-line { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 28px 0 0; padding: 0; list-style: none; color: var(--c-muted); font-family: var(--mono); font-size: .82rem; }
.proof-line li::before { content: "▸"; margin-right: 7px; color: var(--c-accent); }

.chip { display: inline-block; padding: .22rem .62rem; background: var(--c-accent-soft); color: var(--c-accent); font-family: var(--mono); font-size: .76rem; font-weight: 700; letter-spacing: .06em; border-radius: 7px; }

/* ---------- layout ---------- */

.hero { padding-block: clamp(56px, 9vw, 116px) clamp(40px, 6vw, 72px); }
.page-hero { padding-block: clamp(40px, 6vw, 80px) clamp(28px, 4vw, 48px); border-bottom: 1px solid var(--c-edge); }
.section { padding-block: clamp(56px, 9vw, 112px); }
.section.tight { padding-block: 48px; }
.section.panel { background: var(--c-surface-2); border-block: 1px solid var(--c-edge); }
.section-head { display: grid; grid-template-columns: 1.05fr .95fr; gap: 20px 56px; align-items: end; margin-bottom: clamp(32px, 5vw, 56px); }
.section-intro { margin: 0; color: var(--c-muted); font-size: 1.05rem; max-width: 46ch; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }

/* ---------- cards ---------- */

.card { position: relative; background: var(--c-surface); border: 1px solid var(--c-edge); border-radius: var(--radius); padding: 26px; box-shadow: 7px 7px 0 var(--c-shadow); }
.card h3 { margin: 12px 0 10px; }
.card p { color: var(--c-muted); font-size: .98rem; }
.card > :last-child { margin-bottom: 0; }

.app-card { display: flex; flex-direction: column; gap: 4px; border-top: 6px solid var(--c-accent); }
.app-card-head { display: flex; align-items: center; gap: 16px; }
.app-card-head img { width: 64px; height: 64px; border-radius: 15px; }
.app-card h3 { margin: 0; font-size: clamp(1.3rem, 2.4vw, 1.6rem); }
.app-card .hero-actions { margin-top: auto; padding-top: 16px; }

.value h3 { margin-top: 0; }
.value .per-app { margin: 14px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.value .per-app li { padding-left: 14px; border-left: 3px solid var(--c-edge); color: var(--c-muted); font-size: .95rem; }
.value .per-app strong { color: var(--c-text); }

/* ---------- note band (signed) ---------- */

.note-band { background: var(--c-band-bg); color: var(--c-band-text); padding-block: clamp(64px, 10vw, 120px); }
.note-letter { width: min(620px, 100%); margin-inline: auto; }
.note-band h2 { color: var(--c-band-text); font-family: var(--serif); font-style: italic; font-weight: 600; font-size: clamp(1.5rem, 3vw, 2rem); max-width: none; margin: 26px 0; }
.note-body { font-family: var(--serif); }
.note-body p { color: var(--c-band-text); font-size: 1.07rem; line-height: 1.85; margin-bottom: 1.3em; }
.note-sign { margin: 28px 0 0; text-align: right; font-family: var(--serif); font-style: italic; color: var(--c-band-text); }

/* ---------- callout, lists, prose ---------- */

.callout { background: var(--c-surface); border: 1px solid var(--c-edge); border-left: 6px solid var(--c-accent); border-radius: var(--radius); padding: clamp(24px, 4vw, 44px); box-shadow: 7px 7px 0 var(--c-shadow); }
.callout p { color: var(--c-muted); max-width: 62ch; }
.callout h2 { margin-bottom: 14px; font-size: clamp(1.5rem, 3vw, 2.2rem); }

.checklist { margin: 16px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.checklist li { position: relative; padding-left: 28px; color: var(--c-muted); }
.checklist li::before { content: ""; position: absolute; left: 2px; top: .5em; width: 12px; height: 10px; background: var(--c-accent); transform: skewX(-18deg); }

.prose h2 { font-size: 1.45rem; max-width: none; margin: 2.2em 0 .7em; padding-bottom: .35em; border-bottom: 1px solid var(--c-edge); }
.prose h3 { margin: 1.6em 0 .5em; }
.prose p, .prose li { color: var(--c-muted); }
.prose strong { color: var(--c-text); }
.prose ul { padding-left: 1.3em; }

/* ---------- changelog ---------- */

.release { padding: 22px 0; border-top: 1px solid var(--c-edge); }
.release-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin-bottom: 8px; }
.release-head h3 { font-family: var(--mono); font-size: 1.05rem; letter-spacing: 0; }
.release-meta { color: var(--c-muted); font-family: var(--mono); font-size: .82rem; }
.release blockquote { margin: 0; padding-left: 16px; border-left: 3px solid var(--c-accent); color: var(--c-text); white-space: pre-line; }

/* ---------- table (cmp-compat-table) ---------- */

.table-wrap { overflow-x: auto; border: 1px solid var(--c-edge); border-radius: var(--radius); background: var(--c-surface); box-shadow: 7px 7px 0 var(--c-shadow); }
table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: .95rem; }
caption { padding: 16px 20px 8px; text-align: left; color: var(--c-muted); font-size: .88rem; }
th, td { padding: 12px 20px; text-align: left; vertical-align: top; border-top: 1px solid var(--c-edge); }
th { background: var(--c-surface-2); font-family: var(--mono); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
td.empty { color: var(--c-muted); font-style: italic; }

/* ---------- FAQ (cmp-faq) ---------- */

.faq { display: grid; gap: 12px; }
.faq details { background: var(--c-surface); border: 1px solid var(--c-edge); border-radius: var(--radius); box-shadow: 5px 5px 0 var(--c-shadow); }
.faq summary { min-height: 64px; display: flex; align-items: center; gap: 14px; padding: 14px 20px; cursor: pointer; font-weight: 700; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before { content: ""; flex: 0 0 12px; height: 12px; background: var(--c-accent); transform: skewX(-18deg); transition: transform .15s ease; }
.faq details[open] summary::before { transform: skewX(18deg); }
.faq details p { margin: 0; padding: 0 20px 18px 46px; color: var(--c-muted); }

/* ---------- app pages: screenshots, concept diagrams, numbered steps (S3) ----------
   .shots        strip of unedited app screens: <ol class="shots"><li><figure>…
   .steps        numbered cards; .step-num badge; .diagram holds an inline concept SVG
   .dg-anim / .dg-static   animated and still versions of a diagram: the still one is shown
                 under prefers-reduced-motion. Diagram colours: .dg-* classes below; the
                 "photo" inside a diagram keeps its own colours in both themes.
   .slot         dashed region a later chunk fills (marked <!-- …:begin/end --> in HTML) */

.shots { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 22px; margin: 0; padding: 0; list-style: none; }
.shots figure { margin: 0; }
.shots img { width: 100%; height: auto; border: 1px solid var(--c-edge); border-radius: 14px; background: #121316; box-shadow: 5px 5px 0 var(--c-shadow); }
.shots figcaption { margin-top: 12px; color: var(--c-muted); font-size: .92rem; line-height: 1.45; }
.shots .step-num { margin-bottom: 10px; }

.step-num { display: inline-grid; place-items: center; min-width: 30px; height: 30px; padding: 0 8px; background: var(--c-accent-bg); color: var(--c-accent-ink); font-family: var(--mono); font-size: .85rem; font-weight: 800; border-radius: 8px; }
.steps { display: grid; gap: 28px; margin: 0; padding: 0; list-style: none; }
.steps > li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 20px 40px; align-items: center; }
.steps h3 { margin: 14px 0 10px; font-size: clamp(1.25rem, 2.4vw, 1.6rem); }
.steps .card p { margin-bottom: .6rem; }
.diagram { margin: 0; background: var(--c-surface); border: 1px solid var(--c-edge); border-radius: var(--radius); padding: 14px; box-shadow: 7px 7px 0 var(--c-shadow); }
.diagram svg { width: 100%; height: auto; }

.dg-edge { fill: none; stroke: var(--c-edge); stroke-width: 2; }
.dg-line { fill: none; stroke: var(--c-accent); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.dg-dash { fill: none; stroke: var(--c-accent); stroke-width: 3; stroke-dasharray: 7 5; }
.dg-ink { fill: var(--c-text); }
.dg-soft { fill: var(--c-surface-2); }
.dg-mark { fill: none; stroke: #ffffff; stroke-opacity: .62; stroke-width: 4.5; stroke-linecap: round; }
.dg-mark-ink { fill: none; stroke: var(--c-text); stroke-width: 4.5; stroke-linecap: round; }
.dg-static { display: none; }

@keyframes dg-hop { 0%, 18% { transform: translate(0, 0); } 28%, 46% { transform: translate(80px, 0); } 56%, 74% { transform: translate(80px, 60px); } 84%, 100% { transform: translate(0, 0); } }
@keyframes dg-show-late { 0%, 20% { opacity: 0; } 30%, 90% { opacity: 1; } 100% { opacity: 0; } }
@keyframes dg-slide { 0%, 10% { transform: translate(0, 0); opacity: 1; } 45% { transform: translate(var(--dx), var(--dy)); opacity: 1; } 55%, 100% { transform: translate(var(--dx), var(--dy)); opacity: 0; } }
@keyframes dg-reveal { 0%, 45% { opacity: 0; } 60%, 92% { opacity: 1; } 100% { opacity: 0; } }
@keyframes dg-wipe { 0%, 8% { transform: translateX(0); } 70%, 100% { transform: translateX(300px); } }
@keyframes dg-fill { 0%, 30% { opacity: 0; } 65%, 92% { opacity: 1; } 100% { opacity: 0; } }
.dg-hop { animation: dg-hop 4s ease-in-out infinite; }
.dg-late { animation: dg-show-late 4s ease infinite; }
.dg-slide { animation: dg-slide 4s ease-in-out infinite; }
.dg-reveal { animation: dg-reveal 4s ease infinite; }
.dg-wipe { animation: dg-wipe 4s linear infinite; }
.dg-fill { animation: dg-fill 4s ease infinite; }

.slot { padding: clamp(24px, 4vw, 40px); border: 2px dashed var(--c-edge); border-radius: var(--radius); background: var(--c-surface); }
.slot > :last-child { margin-bottom: 0; }
.slot p { color: var(--c-muted); max-width: 62ch; }

.policy { margin-top: 56px; }
.policy h2 { margin-top: 0; }
.policy code { font-family: var(--mono); font-size: .88em; overflow-wrap: anywhere; }

@media (max-width: 800px) {
  .steps > li { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .dg-anim { display: none; }
  .dg-static { display: inline; }
}

/* ---------- footer ---------- */

.site-footer { margin-top: 0; padding-block: 52px 36px; background: var(--c-surface-2); border-top: 1px solid var(--c-edge); }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; }
.footer-brand { margin: 0 0 8px; font-weight: 780; font-size: 1.2rem; letter-spacing: -.02em; }
.footer-head { margin: 0 0 4px; color: var(--c-text); font-family: var(--mono); font-size: .76rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.footer-links { display: grid; gap: 6px; align-content: start; }
.footer-links a { color: var(--c-muted); font-size: .95rem; text-decoration: none; min-height: 32px; display: inline-flex; align-items: center; }
.footer-links a:hover { color: var(--c-text); text-decoration: underline; }
.footer-base { margin-top: 32px; padding-top: 20px; border-top: 1px solid var(--c-edge); }
.footer-rights { margin: 0 0 8px; color: var(--c-text); font-size: .92rem; }
.fine { margin: 0; color: var(--c-muted); font-size: .88rem; }

/* ---------- responsive ---------- */

@media (max-width: 960px) {
  .section-head { grid-template-columns: 1fr; align-items: start; }
  .grid-3 { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .nav-links { margin-left: 0; order: 3; width: 100%; }
  .theme-toggle { margin-left: auto; }
}

@media (max-width: 640px) {
  .grid-2, .grid-3, .footer-grid { grid-template-columns: 1fr; }
  .nav-links a { padding: .3rem .5rem; font-size: .86rem; }
  .nav-sep { display: none; }
  .card, .callout { box-shadow: 4px 4px 0 var(--c-shadow); }
  .faq details p { padding-left: 20px; }
}

/* ---------- preferences ---------- */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .button:hover { translate: none; }
}

@media (prefers-contrast: more) {
  :root { --c-edge: #6b6f78; }
  .card, .callout, .faq details { border-width: 2px; }
}
