/* ============================================================================
   BRIDGES 22–30 — nine themes. Each one carries the single structural move that
   makes its reference recognisable; everything else is left to the shared CSS.
   ==========================================================================*/

/* ---- dusk (Krans — Trail app 22) — near-black violet, used after dark ---- */
body.t-dusk.ws-body { --bg: #16152a; --fg: #cdc9e0; --heading: #f2f0fa; --text: #cdc9e0; --muted: #8c87a8; }
body.t-dusk .ws-nav { background: rgba(22, 21, 42, 0.92); border-bottom: 1px solid #2d2a4a; }
body.t-dusk .ws-section:nth-child(even):not(.ws-cta):not(.ws-shoplink) { background: #1c1a33; }
body.t-dusk .ws-hero { min-height: 82vh; }
body.t-dusk .ws-hero h1 { font-weight: 700; letter-spacing: -0.02em; }
/* the CTA is hoisted to position two, so it must read as a statement, not a footer band */
body.t-dusk .ws-cta { background: #7c6cf0; color: #ffffff; padding: 72px 0; }
body.t-dusk .ws-cta h2, body.t-dusk .ws-cta p { color: #ffffff; }
body.t-dusk .ws-cta .btn { background: #16152a; color: #f2f0fa; }
/* the oversized numeral beat — the story heading IS the number */
body.t-dusk .ws-story h2 { font-size: clamp(44px, 8vw, 104px); font-weight: 800; letter-spacing: -0.04em; line-height: 0.95; color: #7c6cf0; }
body.t-dusk .ws-features-item { background: #1f1d38; border-radius: 4px; }
body.t-dusk .ws-pricing-card { background: #1f1d38; border-color: #34305a; }
body.t-dusk .btn.brand { background: #7c6cf0; color: #ffffff; }
body.t-dusk .btn.brand:hover { background: #6a59e8; }
/* the colophon closes the page under the form — quiet, small, no band */
body.t-dusk .ws-richtext { padding: 40px 0 72px; }
body.t-dusk .ws-richtext p { font-size: 13px; color: #8c87a8; }
