:root {
  --obsidian: #0b0b0c;
  --obsidian-raised: #151518;
  --obsidian-deep: #080809;
  --glass: rgba(27, 27, 31, .64);
  --glass-strong: rgba(32, 32, 37, .82);
  --glass-line: rgba(255,255,255,.12);
  --glass-line-soft: rgba(255,255,255,.07);
  --bone: #f4f1ea;
  --silver: #b8b5bc;
  --dim: #89878e;
  --gold: #d7b46a;
  --amber: #f5d989;
  --success: #bde7be;
  --danger: #ffb5ac;
  --portal-ease: cubic-bezier(.22,1,.36,1);
}

.portal-shell, .account-page--obsidian {
  min-height: 100vh;
  color: var(--bone);
  background:
    radial-gradient(900px 520px at 8% -10%, rgba(215,180,106,.14), transparent 65%),
    radial-gradient(720px 460px at 98% 10%, rgba(139,116,186,.12), transparent 64%),
    var(--obsidian);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.portal-shell::before, .account-page--obsidian::before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.32; background-image:linear-gradient(rgba(255,255,255,.017) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px); background-size:36px 36px; mask-image:linear-gradient(#000,transparent 72%); }
.portal-shell .site-header, body[data-page="account"] .site-header { height:64px; padding:0 clamp(20px,5vw,72px); background:rgba(9,9,10,.72); border-color:var(--glass-line-soft); color:var(--bone); }
.portal-shell .site-header.is-scrolled, body[data-page="account"] .site-header.is-scrolled { background:rgba(9,9,10,.9); }
.portal-shell .brand, body[data-page="account"] .brand { font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:14px; font-weight:700; letter-spacing:.18em; }
.portal-shell .brand i, body[data-page="account"] .brand i { color:var(--gold); }
.portal-shell .site-header nav a, body[data-page="account"] .site-header nav a { color:var(--silver); font:600 12px/1 Inter,ui-sans-serif,sans-serif; letter-spacing:0; text-transform:none; }
.portal-shell .site-header nav a:hover, body[data-page="account"] .site-header nav a:hover { color:var(--bone); }

.obsidian-wrap { max-width:1200px; margin:0 auto; padding:clamp(42px,7vw,88px) clamp(18px,4vw,54px) 84px; position:relative; }
.eyebrow--portal { color:var(--gold); font:600 11px/1 Inter,ui-sans-serif,sans-serif; letter-spacing:.14em; text-transform:uppercase; }
.portal-title { max-width:760px; margin:14px 0 10px; color:var(--bone); font:600 clamp(30px,4vw,54px)/1.02 Inter,ui-sans-serif,sans-serif; letter-spacing:-.055em; }
.portal-lead { max-width:620px; margin:0; color:var(--silver); font-size:15px; line-height:1.65; }
.obsidian-topline { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:38px; }
.portal-nav { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.portal-nav a, .portal-nav button { min-height:36px; padding:0 13px; border:1px solid transparent; border-radius:999px; background:transparent; color:var(--silver); font:600 12px/1 Inter,ui-sans-serif,sans-serif; text-decoration:none; cursor:pointer; transition:background var(--duration-fast,250ms) var(--portal-ease),color var(--duration-fast,250ms) var(--portal-ease),transform var(--duration-fast,250ms) var(--portal-ease); }
.portal-nav a:hover, .portal-nav button:hover { color:var(--bone); background:rgba(255,255,255,.07); transform:translateY(-1px); }
.portal-nav .portal-nav__primary { color:#0b0b0c; background:var(--bone); }
.portal-nav .portal-nav__primary:hover { background:#fff; }

.glass-panel { position:relative; overflow:hidden; border:1px solid var(--glass-line); border-radius:24px; background:var(--glass); box-shadow:0 24px 80px rgba(0,0,0,.22); backdrop-filter:blur(20px) saturate(130%); }
.glass-panel::after { content:""; position:absolute; inset:0; pointer-events:none; border-radius:inherit; background:linear-gradient(125deg,rgba(255,255,255,.08),transparent 27%); }
.vault-grid { display:grid; grid-template-columns:1.35fr .85fr; gap:16px; margin:30px 0 16px; }
.vault-tier { min-height:300px; padding:28px; display:grid; grid-template-columns:minmax(180px,1fr) 220px; gap:28px; align-items:center; }
.vault-tier h2,.admin-title-row h1 { margin:10px 0 8px; color:var(--bone); font-size:clamp(24px,3vw,36px); line-height:1; letter-spacing:-.05em; }
.vault-tier p,.portal-muted { margin:0; color:var(--silver); font-size:13px; line-height:1.55; }
.tier-ring { --tier-progress: 0deg; position:relative; width:196px; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; justify-self:end; background:conic-gradient(var(--gold) var(--tier-progress),rgba(255,255,255,.11) 0); }
.tier-ring::before { content:""; position:absolute; inset:8px; border-radius:50%; background:radial-gradient(circle at 35% 28%,#303035,#101012 61%); border:1px solid rgba(255,255,255,.15); }
.tier-ring > div { z-index:1; text-align:center; }.tier-ring strong { display:block; font-size:25px; letter-spacing:-.06em; }.tier-ring span { font-size:11px;color:var(--silver); }
.vault-balance { padding:28px; display:flex; flex-direction:column; justify-content:space-between; min-height:300px; }
.balance-value { color:var(--bone); font-size:42px; font-weight:600; letter-spacing:-.07em; font-variant-numeric:tabular-nums; }.balance-value small { font-size:13px;color:var(--silver);letter-spacing:0; }
.vault-action { display:inline-flex; width:max-content; align-items:center; min-height:40px; padding:0 15px; color:#101011; background:var(--amber); border:0; border-radius:999px; font:700 12px/1 Inter,ui-sans-serif,sans-serif; cursor:pointer; }
.vault-action:disabled { opacity:.45; cursor:not-allowed; }
.portal-stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:16px 0; }.portal-stat { padding:22px; }.portal-stat dt { color:var(--dim);font-size:12px; }.portal-stat dd { margin:8px 0 0; color:var(--bone);font-size:24px;font-weight:600;letter-spacing:-.04em;font-variant-numeric:tabular-nums; }
.portal-columns { display:grid;grid-template-columns:1.25fr .75fr;gap:16px;margin-top:16px; }.portal-section { padding:25px; }.portal-section__head { display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px; }.portal-section h2 { margin:0;color:var(--bone);font-size:16px;letter-spacing:-.02em; }.gift-card-list,.orders-list--portal { padding:0;margin:0;list-style:none;display:grid;gap:0; }.gift-card-list li,.orders-list--portal li { display:flex;justify-content:space-between;gap:16px;align-items:center;padding:13px 0;border-top:1px solid var(--glass-line-soft);color:var(--silver);font-size:13px; }.gift-card-list strong,.orders-list--portal strong { color:var(--bone);font-variant-numeric:tabular-nums; }

.auth-obsidian { max-width:1080px; margin:0 auto; padding:clamp(36px,7vw,96px) clamp(18px,4vw,48px) 88px; }.auth-intro { text-align:center;max-width:620px;margin:0 auto 32px; }.auth-intro h1 { color:var(--bone);margin:12px 0;font-size:clamp(34px,5vw,58px);line-height:1;letter-spacing:-.065em; }.auth-intro .lead { color:var(--silver); }.auth-gateway { display:grid;grid-template-columns:.8fr 1fr;max-width:900px;margin:auto;overflow:hidden;border-radius:28px;border:1px solid var(--glass-line);background:var(--glass);backdrop-filter:blur(24px) saturate(130%);box-shadow:0 32px 100px rgba(0,0,0,.35); }.auth-quick { padding:36px; background:radial-gradient(circle at 18% 10%,rgba(215,180,106,.2),transparent 46%),rgba(255,255,255,.04); }.auth-quick h2,.auth-gateway .account-form h2 { color:var(--bone);font-family:Inter,ui-sans-serif,sans-serif;font-size:22px;letter-spacing:-.04em; }.auth-quick p,.auth-gateway .fine { color:var(--silver); }.passkey-button { display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:0 16px;background:var(--bone);border:0;border-radius:14px;color:#0b0b0c;font-weight:700;cursor:pointer; }.passkey-mark { display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#171719;color:var(--bone); }.auth-divider { display:flex;align-items:center;gap:12px;margin:25px 0;color:var(--dim);font-size:11px; }.auth-divider::before,.auth-divider::after { content:"";height:1px;flex:1;background:var(--glass-line); }.auth-gateway .account-forms { display:contents; }.auth-gateway .account-form { border:0;background:transparent;padding:36px; }.auth-gateway .account-form + .account-form { border-left:1px solid var(--glass-line); }.auth-gateway label { color:var(--silver); }.auth-gateway input,.auth-gateway select { background:rgba(0,0,0,.22);color:var(--bone);border-color:var(--glass-line); }.auth-gateway .button-dark { background:var(--bone);color:#0b0b0c;border-radius:999px; }.auth-gateway .button-dark:hover { background:#fff; }

.admin-shell { background:var(--obsidian-deep);min-height:100vh;color:var(--bone); }.admin-wrap { max-width:1280px;margin:0 auto;padding:32px clamp(18px,4vw,54px) 72px; }.admin-title-row { position:sticky;top:64px;z-index:5;display:flex;justify-content:space-between;align-items:end;gap:20px;padding:23px 0 20px;background:linear-gradient(var(--obsidian-deep) 72%,transparent); }.admin-title-row h1 { font-size:28px;margin:0; }.admin-title-row p { margin:6px 0 0;color:var(--silver);font-size:13px; }.admin-actions { display:flex;align-items:center;gap:8px; }.admin-actions select,.admin-actions button { height:36px;border:1px solid var(--glass-line);border-radius:999px;background:#171719;color:var(--bone);padding:0 13px;font:600 12px Inter,ui-sans-serif,sans-serif; }.admin-kpis { display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--glass-line);border-radius:18px;background:#111113;overflow:hidden; }.admin-kpi { padding:20px; }.admin-kpi + .admin-kpi { border-left:1px solid var(--glass-line); }.admin-kpi span { display:block;color:var(--dim);font-size:12px; }.admin-kpi strong { display:block;margin-top:7px;font-size:24px;letter-spacing:-.05em;font-variant-numeric:tabular-nums; }.admin-grid { display:grid;grid-template-columns:1.45fr .55fr;gap:16px;margin-top:16px; }.admin-panel { border:1px solid var(--glass-line-soft);border-radius:18px;background:#111113;overflow:hidden; }.admin-panel__head { display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--glass-line-soft); }.admin-panel__head h2 { margin:0;font-size:15px; }.admin-panel__head span { color:var(--dim);font-size:12px; }.admin-table { color:var(--silver); }.admin-table th { padding:12px 20px;color:var(--dim);font:600 11px Inter,ui-sans-serif,sans-serif;letter-spacing:0;text-transform:none;border-color:var(--glass-line-soft); }.admin-table td { padding:15px 20px;border-color:var(--glass-line-soft); }.admin-table tbody tr { transition:background var(--duration-quick,150ms) var(--portal-ease); }.admin-table tbody tr:hover { background:rgba(255,255,255,.04); }.admin-feed { list-style:none;margin:0;padding:6px 20px; }.admin-feed li { display:grid;grid-template-columns:8px 1fr;gap:10px;padding:14px 0;border-bottom:1px solid var(--glass-line-soft);font-size:13px;color:var(--silver); }.admin-feed li::before { content:"";width:6px;height:6px;margin-top:7px;border-radius:50%;background:var(--gold); }.admin-empty { padding:22px 20px;color:var(--dim);font-size:13px; }.admin-sticky-action { position:fixed;right:28px;bottom:24px;z-index:9;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:var(--bone);color:#0b0b0c;padding:12px 16px;font-weight:700;font-size:12px;box-shadow:0 12px 35px rgba(0,0,0,.4); }

@media (max-width:850px) { .vault-grid,.portal-columns,.auth-gateway,.admin-grid { grid-template-columns:1fr; }.vault-tier { grid-template-columns:1fr; }.tier-ring { justify-self:start; }.auth-gateway .account-form + .account-form { border-left:0;border-top:1px solid var(--glass-line); }.portal-stat-grid { grid-template-columns:1fr; }.admin-kpis { grid-template-columns:1fr 1fr; }.admin-kpi:nth-child(odd) { border-left:0; }.admin-kpi:nth-child(n+3) { border-top:1px solid var(--glass-line); }.obsidian-topline,.admin-title-row { align-items:start;flex-direction:column; }.admin-title-row { position:static;background:none; }.portal-shell .site-header nav,body[data-page="account"] .site-header nav { display:none; } }
@media (prefers-reduced-motion:reduce) { .portal-nav a,.portal-nav button,.admin-table tbody tr { transition:none; } }/* Authentication is a single focused path: registration is revealed only when requested. */
.auth-gateway .account-forms { min-width:0; }
.auth-gateway .account-form { min-height:100%; }
.auth-gateway .account-form[hidden] { display:none; }
.auth-switch { display:block; margin:16px 0 0; padding:0; border:0; background:transparent; color:var(--silver); font:600 12px/1.4 Inter,ui-sans-serif,sans-serif; cursor:pointer; text-decoration:underline; text-underline-offset:4px; }
.auth-switch:hover { color:var(--bone); }

/* Sitewide reconciliation: authenticated surfaces share the storefront's editorial system. */
.portal-shell, .account-page--obsidian, .admin-shell {
  --obsidian: var(--paper); --obsidian-raised: var(--milk); --obsidian-deep: var(--paper);
  --glass: rgba(252,251,248,.92); --glass-strong: rgba(252,251,248,.96);
  --glass-line: var(--line); --glass-line-soft: rgba(18,22,20,.1);
  --bone: var(--ink); --silver: var(--ink-soft); --dim: #687068; --gold: var(--moss); --amber: var(--apricot);
  background: var(--paper); color: var(--ink); font-family: var(--sans);
}

.auth-provider-grid{display:grid;gap:10px;margin:22px 0}.auth-provider{border:1px solid var(--line);border-radius:999px;background:var(--milk);padding:12px 16px;color:var(--ink);font:600 .78rem var(--sans);letter-spacing:.08em;text-transform:uppercase}.auth-provider:disabled,.passkey-button:disabled{opacity:.55;cursor:not-allowed}.sales-chart{height:150px;display:flex;align-items:end;gap:6px;padding:20px}.sales-chart span{flex:1;min-width:6px;background:linear-gradient(180deg,var(--moss),var(--apricot));border-radius:999px 999px 2px 2px;transition:height .25s ease}.analytics-panel{margin:24px 0}.portal-section textarea{min-height:88px}
.portal-shell::before, .account-page--obsidian::before { display:none; }
.portal-shell .site-header, body[data-page="account"] .site-header, .admin-shell .site-header {
  background: rgba(244,241,235,.92); color:var(--ink); border-bottom-color:var(--line); backdrop-filter:blur(18px);
}
.portal-shell .site-header.is-scrolled, body[data-page="account"] .site-header.is-scrolled, .admin-shell .site-header.is-scrolled { background:rgba(244,241,235,.98); }
.portal-shell .brand, body[data-page="account"] .brand, .admin-shell .brand { font-family:var(--serif); font-size:20px; font-weight:600; letter-spacing:.13em; }
.portal-shell .site-header nav a, body[data-page="account"] .site-header nav a, .admin-shell .site-header nav a { color:var(--ink); font-family:var(--mono); font-size:9.5px; letter-spacing:.09em; text-transform:uppercase; }
.obsidian-wrap,.auth-obsidian,.admin-wrap { max-width:1200px; }
.eyebrow--portal { color:var(--moss); font-family:var(--mono); font-size:10px; }
.portal-title,.auth-intro h1,.vault-tier h2,.admin-title-row h1 { color:var(--ink); font-family:var(--serif); font-weight:500; }
.portal-lead,.vault-tier p,.portal-muted,.auth-quick p,.auth-gateway .fine,.admin-title-row p { color:var(--ink-soft); }
.portal-nav a,.portal-nav button { color:var(--ink); font-family:var(--mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
.portal-nav a:hover,.portal-nav button:hover { background:var(--moss-soft); color:var(--ink); }
.portal-nav .portal-nav__primary,.vault-action { background:var(--ink); color:var(--milk); font-family:var(--mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
.glass-panel,.auth-gateway,.admin-panel { background:var(--milk); border-color:var(--line); box-shadow:none; backdrop-filter:none; }
.glass-panel::after { display:none; }
.vault-tier,.vault-balance,.portal-stat,.portal-section { background:var(--milk); }
.tier-ring { background:conic-gradient(var(--moss) var(--tier-progress),var(--moss-soft) 0); }
.tier-ring::before { background:var(--paper); border-color:var(--line); }
.tier-ring strong,.balance-value,.portal-stat dd,.gift-card-list strong,.orders-list--portal strong,.admin-kpi strong { color:var(--ink); }
.tier-ring span,.portal-stat dt { color:var(--ink-soft); }
.auth-quick { background:var(--moss-soft); }
.auth-gateway .account-form { background:var(--milk); }
.auth-gateway .account-form + .account-form { border-color:var(--line); }
.auth-gateway label { color:var(--ink); }
.auth-gateway input,.auth-gateway select { background:#fff;color:var(--ink);border-color:var(--line); }
.auth-gateway .button-dark,.passkey-button { background:var(--ink);color:var(--milk);border-radius:0; font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em; }
.passkey-mark { background:var(--milk);color:var(--ink); }.auth-switch { color:var(--ink-soft);font-family:var(--mono);font-size:10px; }
.admin-shell { background:var(--paper); }.admin-title-row { background:linear-gradient(var(--paper) 72%,transparent); }.admin-actions select,.admin-actions button { border-color:var(--line);background:var(--milk);color:var(--ink);font-family:var(--sans); }
.admin-kpis { border-color:var(--line);background:var(--milk); }.admin-kpi + .admin-kpi { border-color:var(--line); }.admin-kpi span,.admin-panel__head span,.admin-empty { color:var(--ink-soft); }
.admin-panel__head,.admin-table th,.admin-table td,.admin-feed li { border-color:var(--line); }.admin-table { color:var(--ink); }.admin-table th { color:var(--ink-soft);font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.07em; }.admin-table tbody tr:hover { background:var(--moss-soft); }.admin-feed li { color:var(--ink-soft); }.admin-feed li::before { background:var(--apricot); }.admin-sticky-action { background:var(--ink);color:var(--milk);border:0;box-shadow:var(--shadow);font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.07em; }
