        :root {
            /* v2 light theme — white bg, black text, blue accent */
            --void:         #FFFFFF;
            --surface:      #FFFFFF;
            --surface-2:    #F4F6F8;
            --surface-3:    #EAEDF0;
            --border:       #E2E5E9;
            --border-hi:    #CDD2D8;
            --ember:        #2563EB;   /* was orange — now blue (primary accent) */
            --ember-dim:    #1D4ED8;   /* blue hover */
            --ember-glow:   rgba(37, 99, 235, 0.12);
            --ember-soft:   rgba(37, 99, 235, 0.25);
            --brass:        #3B82F6;   /* secondary accent — lighter blue */
            --smoke:        #6B7280;
            --ash:          #374151;
            --cream:        #111111;   /* primary text — black */
            --white:        #000000;
            --green-avail:  #16A34A;
            --yellow-busy:  #CA8A04;
        }

        *, *::before, *::after { box-sizing: border-box; }

        html { scroll-behavior: smooth; }

        body {
            font-family: 'Manrope', sans-serif;
            background: var(--void);
            color: var(--cream);
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

        /* v2: force a single sans-serif family everywhere (overrides inline Bebas/Space Mono) */
        body, body * { font-family: 'Manrope', sans-serif !important; }

        ::selection { background: var(--ember); color: #fff; }

        /* Typography utilities — sans-serif in v2 */
        .font-display { font-family: 'Manrope', sans-serif; font-weight: 800; letter-spacing: 0.01em; }
        .font-mono    { font-family: 'Manrope', sans-serif; }

        /* Brand */
        .galv-logo {
            font-family: 'Manrope', sans-serif;
            font-weight: 800;
            letter-spacing: 0.06em;
            color: var(--cream);
            font-size: 1.5rem;
        }

        /* Legacy color helpers (kept for compat) */
        .galv-primary { color: var(--ember); }
        .galv-dark    { color: var(--cream); }
        .galv-accent  { color: var(--brass); }

        /* ── Buttons ──────────────────────────────────────── */
        .btn-action {
            display:inline-flex; align-items:center; justify-content:center; gap:0.4rem;
            background:#3B82F6; color:#fff; border:none; cursor:pointer;
            padding:0.55rem 1rem; font-family:'Space Mono',monospace; font-size:0.7rem;
            letter-spacing:0.06em; text-transform:uppercase; line-height:1; text-decoration:none;
            clip-path:polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 0 100%);
            transition:background 0.15s;
        }
        .btn-action:hover { background:#2563EB; color:#fff; }
        .btn-action.btn-action-danger { background:#ef4444; }
        .btn-action.btn-action-danger:hover { background:#dc2626; }
        .btn-action .bi { font-size:0.85em; line-height:1; }
        .status-chip {
            display:inline-flex; align-items:center; gap:0.35rem;
            background:none; border:1px solid var(--border-hi); color:var(--smoke);
            padding:0.4rem 0.7rem; font-family:'Space Mono',monospace; font-size:0.62rem;
            letter-spacing:0.08em; text-transform:uppercase;
        }
        .btn-primary {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            padding: 0.8rem 1.75rem;
            background: var(--ember);
            color: #fff;
            font-family: 'Manrope', sans-serif;
            font-weight: 800;
            font-size: 0.8rem;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            text-decoration: none;
            border: 2px solid var(--ember);
            cursor: pointer;
            transition: background 0.18s, transform 0.18s, box-shadow 0.18s;
            clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
        }
        .btn-primary:hover {
            background: var(--ember-dim);
            border-color: var(--ember-dim);
            transform: translateY(-2px);
            box-shadow: 0 8px 24px var(--ember-glow);
        }
        .btn-primary:active { transform: translateY(0); }

        .btn-secondary {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            padding: 0.8rem 1.75rem;
            background: transparent;
            color: var(--ash);
            font-family: 'Manrope', sans-serif;
            font-weight: 800;
            font-size: 0.8rem;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            text-decoration: none;
            border: 2px solid var(--border-hi);
            cursor: pointer;
            transition: color 0.18s, border-color 0.18s, transform 0.18s;
            clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
        }
        .btn-secondary:hover {
            border-color: var(--ember);
            color: var(--ember);
            transform: translateY(-2px);
        }
        .btn-secondary:active { transform: translateY(0); }

        /* ── Form inputs ─────────────────────────────────── */
        .galv-input {
            width: 100%;
            background: var(--surface-2);
            border: 1px solid var(--border-hi);
            color: var(--cream);
            padding: 0.875rem 1rem;
            font-family: 'Manrope', sans-serif;
            font-size: 0.9rem;
            transition: border-color 0.2s, box-shadow 0.2s;
            outline: none;
        }
        .galv-input:focus {
            border-color: var(--ember);
            box-shadow: 0 0 0 3px var(--ember-glow);
        }
        .galv-input::placeholder { color: var(--smoke); }

        .galv-label {
            display: block;
            font-size: 0.75rem;
            font-weight: 700;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: var(--ash);
            margin-bottom: 0.5rem;
        }

        /* ── Nav link ───────────────────────────────────── */
        .nav-link {
            color: var(--ash);
            font-size: 0.75rem;
            font-weight: 700;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            text-decoration: none;
            transition: color 0.18s;
        }
        .nav-link:hover { color: var(--cream); }
        .nav-link.danger { color: #ef4444; }
        .nav-link.danger:hover { color: #f87171; }
        .nav-link.muted {
            color: var(--smoke);
            font-size: 0.7rem;
        }
        .nav-link.muted:hover { color: var(--ash); }

        .client-footer-link {
            color: var(--smoke);
            font-size: 0.875rem;
            text-decoration: none;
            transition: color 0.2s;
        }
        .client-footer-link:hover { color: var(--ash); }

        /* ── Section separators ─────────────────────────── */
        .section-rule { border: none; border-top: 1px solid var(--border); }

        /* ── Entrance animation ─────────────────────────── */
        @keyframes galv-rise {
            from { opacity: 0; transform: translateY(16px); }
            to   { opacity: 1; transform: translateY(0); }
        }
        .rise { animation: galv-rise 0.5s ease-out both; }
        .rise-1 { animation-delay: 0.1s; }
        .rise-2 { animation-delay: 0.2s; }
        .rise-3 { animation-delay: 0.3s; }
        .rise-4 { animation-delay: 0.4s; }
        .rise-5 { animation-delay: 0.55s; }
        .rise-6 { animation-delay: 0.7s; }

        [data-theme="light"] {
            --void: #FFFFFF; --surface: #FFFFFF; --surface-2: #F4F6F8;
            --surface-3: #EAEDF0; --border: #E2E5E9; --border-hi: #CDD2D8;
            --smoke: #6B7280; --ash: #374151; --cream: #111111;
            --ember-glow: rgba(37,99,235,0.06);
        }
        [data-theme="light"] body { background: var(--void); color: var(--cream); }
        [data-theme="light"] header { background: rgba(255,255,255,0.97) !important; }
        [data-theme="light"] #mobile-menu { background: var(--surface) !important; }
        [data-theme="light"] footer { background: var(--surface) !important; border-top-color: var(--border) !important; }

        /* Layout chrome (was inline) */
        .cbase-header { background: rgba(255,255,255,0.95); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 100; }
        .cbase-container { max-width: 1280px; margin: 0 auto; padding: 0 1.5rem; }
        .cbase-bar { display: flex; align-items: center; justify-content: space-between; height: 64px; }
        .cbase-logo-link { display: flex; align-items: center; gap: 0.625rem; text-decoration: none; }
        .cbase-nav { align-items: center; gap: 2rem; display: flex; }
        .cbase-nav-guest { align-items: center; gap: 1.5rem; display: flex; }
        .cbase-rel { position: relative; }
        .cbase-nav-badge { display: none; position: absolute; top: -4px; right: -10px; min-width: 16px; height: 16px; padding: 0 3px; border-radius: 8px; background: var(--ember); color: #fff; font-family: 'Space Mono', monospace; font-size: 0.5rem; font-weight: 700; line-height: 16px; text-align: center; }
        .cbase-signup-btn { padding: 0.6rem 1.2rem; font-size: 0.75rem; }
        .cbase-theme-btn { background: none; border: 1px solid var(--border-hi); cursor: pointer; color: var(--ash); padding: 0.25rem 0.5rem; font-family: 'Space Mono', monospace; font-size: 0.7rem; line-height: 1; transition: border-color 0.2s, color 0.2s; flex-shrink: 0; }
        .cbase-mobile-toggle { background: none; border: none; cursor: pointer; color: var(--ash); padding: 0.25rem; position: relative; }
        .cbase-burger-offer { display: none; position: absolute; top: -4px; right: -6px; min-width: 16px; height: 16px; padding: 0 3px; border-radius: 8px; background: var(--ember); color: #fff; font-family: 'Space Mono', monospace; font-size: 0.5rem; font-weight: 700; line-height: 16px; text-align: center; }
        .cbase-burger-msg { display: none; position: absolute; bottom: -2px; right: -6px; min-width: 14px; height: 14px; padding: 0 3px; border-radius: 2px; background: var(--brass); color: #fff; font-family: 'Space Mono', monospace; font-size: 0.45rem; font-weight: 700; line-height: 14px; text-align: center; }
        .cbase-icon-close { display: none; }
        .cbase-mobile-menu { display: none; border-top: 1px solid var(--border); background: var(--surface); }
        .cbase-mobile-inner { padding: 1rem 1.5rem; display: flex; flex-direction: column; }
        .cbase-mobile-link { padding: 0.875rem 0; border-bottom: 1px solid var(--border); }
        .cbase-mobile-link-last { padding: 0.875rem 0; }
        .cbase-mobile-link-signup { padding: 0.875rem 0; border-bottom: 1px solid var(--border); color: var(--ember); }
        .cbase-footer { background: var(--surface); border-top: 1px solid var(--border); padding: 4rem 0 2.5rem; margin-top: 6rem; }
        .cbase-footer-grid { display: grid; gap: 3rem; margin-bottom: 3.5rem; }
        .cbase-footer-brand { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
        .cbase-logo-md { font-size: 1.125rem; }
        .cbase-footer-desc { color: var(--smoke); font-size: 0.8rem; line-height: 1.7; max-width: 220px; }
        .cbase-footer-badges { margin-top: 1.25rem; display: flex; flex-wrap: wrap; gap: 0.625rem; }
        .cbase-footer-badge { color: var(--smoke); font-size: 0.65rem; letter-spacing: 0.1em; border: 1px solid var(--border-hi); padding: 0.25rem 0.5rem; }
        .cbase-footer-h4 { color: var(--cream); font-size: 0.65rem; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 1.25rem; }
        .cbase-footer-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.875rem; }
        .cbase-footer-bottom { border-top: 1px solid var(--border); padding-top: 2rem; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
        .cbase-footer-copy { color: var(--smoke); font-size: 0.65rem; letter-spacing: 0.08em; }
