/* thai */
@font-face {
  font-family: 'Chakra Petch';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/brand/fonts/cIflMapbsEk7TDLdtEz1BwkebIl1U5_F_gUk0wzH.woff2) format('woff2');
  unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
  font-family: 'Chakra Petch';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/brand/fonts/cIflMapbsEk7TDLdtEz1BwkebIl1SJ_F_gUk0wzH.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Chakra Petch';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/brand/fonts/cIflMapbsEk7TDLdtEz1BwkebIl1SZ_F_gUk0wzH.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Chakra Petch';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/brand/fonts/cIflMapbsEk7TDLdtEz1BwkebIl1R5_F_gUk0w.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
  font-family: 'Chakra Petch';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/brand/fonts/cIflMapbsEk7TDLdtEz1BwkeQI51U5_F_gUk0wzH.woff2) format('woff2');
  unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
  font-family: 'Chakra Petch';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/brand/fonts/cIflMapbsEk7TDLdtEz1BwkeQI51SJ_F_gUk0wzH.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Chakra Petch';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/brand/fonts/cIflMapbsEk7TDLdtEz1BwkeQI51SZ_F_gUk0wzH.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Chakra Petch';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/brand/fonts/cIflMapbsEk7TDLdtEz1BwkeQI51R5_F_gUk0w.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/brand/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPb54C_k3HqUtEw.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/brand/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPb94C_k3HqUtEw.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/brand/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPbF4C_k3HqU.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/brand/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPb54C_k3HqUtEw.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/brand/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPb94C_k3HqUtEw.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/brand/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPbF4C_k3HqU.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* Aster 3.0 — A-Blade. Brand tokens and the logo component.
   Single source of truth for values: aster-brand-tokens.json.
   The mark is single-colour. Colour comes from the surface, never from the mark. */

:root {
  --aster-ink: #14161C;
  --aster-iris: #534AB7;
  --aster-iris-light: #AFA9EC;
  --aster-paper: #F4F2ED;
  --aster-muted: #6B6A66;
  --aster-hairline: #E2E0D8;
  --aster-surface: #FFFFFF;

  --aster-font-display: "Chakra Petch", ui-sans-serif, system-ui, sans-serif;
  --aster-font-body: "Space Grotesk", ui-sans-serif, system-ui, -apple-system,
    "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  --aster-font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --aster-logo-min-width: 96px;   /* horizontal lockup */
  --aster-symbol-min-size: 24px;  /* standalone mark */
  --aster-clear-space: 0.2;       /* 1x = 20% of mark width */
}

/* ---------- logo ---------- */

.aster-logo {
  display: block;
  height: 44px;
  width: auto;
}

@media (max-width: 720px) {
  .aster-logo { height: 36px; }
}

/* Horizontal lockup below 96px wide loses the wordmark: use the symbol instead.
   Handled by markup, not by CSS shrinking — see aster-brand-book.html §04. */

.aster-symbol {
  display: block;
  width: 40px;
  height: 40px;
  flex: none;
}

/* ---------- surfaces ---------- */

.aster-on-ink { background: var(--aster-ink); color: #FFFFFF; }
.aster-on-paper { background: var(--aster-paper); color: var(--aster-ink); }
.aster-on-iris { background: var(--aster-iris); color: #FFFFFF; }

/* ---------- the scan line, derived from the mark ---------- */

/* A divider is the slit turned 90° into the layout: a rule interrupted by one iris segment.
   Spacing follows the same rhythm as the slit height (12 units of a 256 canvas ≈ 4.7%). */
.aster-rule {
  height: 2px;
  border: 0;
  margin: 32px 0;
  background: linear-gradient(
    to right,
    var(--aster-ink) 0 38%,
    transparent 38% 40.5%,
    var(--aster-iris) 40.5% 52%,
    transparent 52% 54.5%,
    var(--aster-ink) 54.5% 100%
  );
}

/* Progress: the iris notch at the head is the same 6-unit cursor as the slit. */
.aster-progress {
  height: 6px;
  background: var(--aster-hairline);
  position: relative;
  overflow: hidden;
}
.aster-progress > span {
  display: block;
  height: 100%;
  background: var(--aster-ink);
  position: relative;
}
.aster-progress > span::after {
  content: "";
  position: absolute;
  inset: 0 0 0 auto;
  width: 6px;
  background: var(--aster-iris);
}

/* ---------- type ---------- */

.aster-display {
  font-family: var(--aster-font-display);
  font-weight: 600;
  letter-spacing: -0.5px;
  line-height: 1.15;
}

.aster-body {
  font-family: var(--aster-font-body);
  font-weight: 400;
  line-height: 1.7;
}

.aster-eyebrow {
  font-family: var(--aster-font-mono);
  font-size: 11px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--aster-muted);
}

/* ---- Aster 站点补丁：支付方式配色（微信 / 支付宝 官方色） ---- */
div[class*="lg:grid-cols-3"]>button[class*="bg-clip-padding"]:nth-child(1){background:#1677ff!important;border-color:#1677ff!important;color:#fff!important}
div[class*="lg:grid-cols-3"]>button[class*="bg-clip-padding"]:nth-child(2){background:#07c160!important;border-color:#07c160!important;color:#fff!important}
div[class*="lg:grid-cols-3"]>button[class*="bg-clip-padding"] svg{color:currentColor!important;fill:currentColor!important}

/* ---- Aster logo：header 用横版组合，保比例、不做圆角裁切 ---- */
a[class*="group"] img[src*="/brand/"]{height:44px!important;width:auto!important;max-width:none!important;border-radius:0!important;object-fit:contain!important}
@media(max-width:640px){a[class*="group"] img[src*="/brand/"]{height:34px!important}}


/* ---- Aster 站点补丁：把 new-api 的主色换成品红线色 Iris ---- */
:root, html.light { --primary: #534AB7 !important; --primary-foreground: #FFFFFF !important; }
html.dark { --primary: #AFA9EC !important; --primary-foreground: #14161C !important; }
