/* ==========================================================================
   Theme: Swiss Minimal, grid discipline, generous whitespace, one red accent.
   ========================================================================== */

[data-theme="swiss"] {
  --bg: #fcfcfc;
  --bg-soft: #f4f4f4;
  --surface: #ffffff;
  --ink: #111111;
  --muted: #595959;
  --accent: #e02d22;
  --accent-ink: #ffffff;
  --accent-2: #111111;
  --line: #e4e4e4;
  --border-w: 1px;
  --radius: 0px;
  --radius-lg: 0px;
  --shadow: none;
  --shadow-strong: 16px 16px 0 0 #efefef;

  --font-display: "Inter", system-ui, sans-serif;
  --h-weight: 800;
  --h-tracking: -0.03em;
  --h-transform: none;
  --kicker-font: "IBM Plex Mono", monospace;
  --btn-radius: 0px;
}

/* Precise grid backdrop behind the hero composition */
[data-theme="swiss"] .hero-art {
  background-image:
    linear-gradient(to right, var(--line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--line) 1px, transparent 1px);
  background-size: 2.5rem 2.5rem;
}
[data-theme="swiss"] .ha-1 {
  opacity: 1; width: 3rem; height: 3rem;
  background: var(--accent);
  top: 0; right: 6%;
}
[data-theme="swiss"] .ha-2 {
  opacity: 1; width: 4.5rem; height: 4.5rem;
  border: 2px solid var(--ink); border-radius: 50%;
  bottom: 4%; left: 0;
  background: var(--bg);
}
[data-theme="swiss"] .win-dots i:first-child { background: var(--accent); }

[data-theme="swiss"] .kicker::before { content: "· "; color: var(--ink); }

[data-theme="swiss"] .svc-card,
[data-theme="swiss"] .why-card,
[data-theme="swiss"] .step { border-color: var(--line); }
[data-theme="swiss"] .svc-card:hover { border-color: var(--ink); transform: none; }
[data-theme="swiss"] .demo-card:hover { border-color: var(--ink); transform: none; }

[data-theme="swiss"] .step-num { border-radius: 0; }

/* Carousel chrome stays austere */
[data-theme="swiss"] .car-btn { border-radius: 0; }
[data-theme="swiss"] .mode-card.is-selected::after { border-radius: 0; }

/* Ticker: a typeset information band */
[data-theme="swiss"] { --tk-speed: 45; }
[data-theme="swiss"] .ticker {
  background: var(--surface);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
[data-theme="swiss"] .tk-item { color: var(--ink); letter-spacing: 0.2em; }
[data-theme="swiss"] .tk-sep { color: var(--accent); }
[data-theme="swiss"] .tk-sep::before { content: "■"; font-size: 0.55em; vertical-align: 0.15em; }

/* Philosophy panel: a precise specimen sheet */
[data-theme="swiss"] .mode-panel { border: 1px solid var(--ink); }
[data-theme="swiss"] .mp-label::before { content: "· "; }

/* --------------------------------------------------------------------------
   Self-preview: the Swiss card always looks Swiss, whatever theme is active
   -------------------------------------------------------------------------- */
.mode-card[data-mode="swiss"] .mc-prev {
  background: #ffffff;
  border: 1px solid #e4e4e4;
  border-radius: 0;
  background-image:
    linear-gradient(to right, #efefef 1px, transparent 1px),
    linear-gradient(to bottom, #efefef 1px, transparent 1px);
  background-size: 1.1rem 1.1rem;
}
.mode-card[data-mode="swiss"] .mp-a { width: 1.1rem; height: 1.1rem; background: #e02d22; top: 0.7rem; right: 0.7rem; }
.mode-card[data-mode="swiss"] .mp-b { width: 2.4rem; height: 0.3rem; background: #111; left: 0.7rem; top: 0.9rem; }
.mode-card[data-mode="swiss"] .mp-c { width: 1.6rem; height: 0.3rem; background: #c9c9c9; left: 0.7rem; top: 1.5rem; }
.mode-card[data-mode="swiss"] .mc-aa {
  font-family: "Inter", sans-serif; font-weight: 800; letter-spacing: -0.04em;
  color: #111; left: 0.7rem; bottom: 0.6rem;
}
