        :root {
            --void:         #090909;
            --surface:      #111111;
            --surface-2:    #191919;
            --surface-3:    #222222;
            --border:       #242424;
            --border-hi:    #363636;
            --ember:        #FF5E1A;
            --ember-dim:    #D94E12;
            --ember-glow:   rgba(255,94,26,0.12);
            --brass:        #C9883A;
            --brass-dim:    #b07830;
            --brass-glow:   rgba(201,136,58,0.12);
            --smoke:        #636363;
            --ash:          #A8A49C;
            --cream:        #EDE9E1;
            --green-avail:  #22C55E;
            --yellow-busy:  #EAB308;
        }
        *, *::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; margin:0; }
        ::selection { background:var(--brass); color:#fff; }
        .font-display { font-family:'Bebas Neue',cursive; letter-spacing:0.03em; }
        .font-mono    { font-family:'Space Mono',monospace; }
        .galv-logo    { font-family:'Bebas Neue',cursive; letter-spacing:0.1em; color:var(--cream); font-size:1.5rem; }

        /* Buttons — brass primary for artisan portal */
        .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(--brass); 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(--brass); 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(--brass-dim); border-color:var(--brass-dim); transform:translateY(-2px); box-shadow:0 8px 24px var(--brass-glow); }
        .btn-primary:active { transform:translateY(0); }

        .btn-ember {
            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;
            clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%);
        }
        .btn-ember:hover { background:var(--ember-dim); border-color:var(--ember-dim); transform:translateY(-2px); }

        .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(--brass); color:var(--brass); 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(--brass); box-shadow:0 0 0 3px var(--brass-glow); }
        .galv-input::placeholder { color:var(--smoke); }
        select.galv-input {
            appearance:none;
            background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23636363' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
            background-repeat:no-repeat; background-position:right 1rem center;
        }
        .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 */
        .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; }

        /* Animations */
        @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; }

        [data-theme="light"] {
            --void: #F4F2ED; --surface: #EDEBE6; --surface-2: #E3E1DB;
            --surface-3: #D6D4CE; --border: #CCCAC4; --border-hi: #B0AEA8;
            --smoke: #78766F; --ash: #464340; --cream: #1C1A17;
            --ember-glow: rgba(255,94,26,0.06);
        }
        [data-theme="light"] body { background: var(--void); color: var(--cream); }
        [data-theme="light"] header { background: rgba(244,242,237,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) */
        .abr-header { background: rgba(9,9,9,0.95); backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 100; }
        .abr-container { max-width: 1280px; margin: 0 auto; padding: 0 1.5rem; }
        .abr-bar { display: flex; align-items: center; justify-content: space-between; height: 64px; }
        .abr-logo-link { display: flex; align-items: center; gap: 0.625rem; text-decoration: none; }
        .abr-badge { font-size: 0.55rem; color: var(--brass); letter-spacing: 0.15em; border: 1px solid rgba(201,136,58,0.5); padding: 0.15rem 0.4rem; margin-left: 0.25rem; }
        .abr-nav { display: flex; align-items: center; gap: 2rem; }
        .abr-nav-guest { display: flex; align-items: center; gap: 1.5rem; }
        .abr-link-sm { font-size: 0.65rem; color: var(--smoke); }
        .abr-join-btn { padding: 0.6rem 1.2rem; font-size: 0.75rem; }
        .abr-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; }
        .abr-mobile-toggle { background: none; border: none; cursor: pointer; color: var(--ash); padding: 0.25rem; display: none; }
        .abr-icon-close { display: none; }
        .abr-mobile-menu { display: none; border-top: 1px solid var(--border); background: var(--surface); }
        .abr-mobile-inner { padding: 1rem 1.5rem; display: flex; flex-direction: column; }
        .abr-mobile-link { padding: 0.875rem 0; border-bottom: 1px solid var(--border); }
        .abr-mobile-link-last { padding: 0.875rem 0; }
        .abr-mobile-link-join { padding: 0.875rem 0; color: var(--brass); }
        .abr-mobile-link-sm { padding: 0.875rem 0; font-size: 0.65rem; color: var(--smoke); }
        .abr-footer { background: var(--surface); border-top: 1px solid var(--border); padding: 3rem 0 2rem; margin-top: 5rem; }
        .abr-footer-inner { max-width: 1280px; margin: 0 auto; padding: 0 1.5rem; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
        .abr-footer-logo { display: flex; align-items: center; gap: 0.5rem; }
        .abr-logo-sm { font-size: 1rem; }
        .abr-badge-sm { font-size: 0.5rem; color: var(--brass); letter-spacing: 0.12em; border: 1px solid rgba(201,136,58,0.5); padding: 0.1rem 0.35rem; }
        .abr-copy { color: var(--smoke); font-size: 0.6rem; letter-spacing: 0.08em; }
