/* Lam Hồng design tokens — the only place raw values live. */
@font-face{font-family:"Be Vietnam Pro";src:url("/assets/BeVietnamPro-Regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Be Vietnam Pro";src:url("/assets/BeVietnamPro-SemiBold.ttf") format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:"Be Vietnam Pro";src:url("/assets/BeVietnamPro-Bold.ttf") format("truetype");font-weight:700;font-display:swap}
:root{
  /* colour */
  --c-primary:#1e6fb8; --c-primary-strong:#175b99; --c-ink:#173d5a; --c-muted:#536c7d;
  --c-surface:#fff; --c-surface-soft:#f2f8fc; --c-surface-tint:#e8f2f9; --c-line:#d6e4ee;
  --c-accent:#b94149; --c-success:#2f7d5b; --c-success-soft:#eaf6f0; --c-error:#b94149; --c-error-soft:#fbeeef;
  /* type */
  --font:"Be Vietnam Pro",system-ui,sans-serif;
  --fs-xs:.75rem; --fs-sm:.875rem; --fs-md:1rem; --fs-lg:1.125rem; --fs-xl:1.375rem; --fs-2xl:1.75rem; --fs-3xl:2.25rem; --fs-4xl:3rem;
  --fw-regular:400; --fw-semibold:600; --fw-bold:700;
  --lh-tight:1.25; --lh-snug:1.4; --lh-body:1.7;
  --ls-tight:-.02em; --ls-caps:.14em;
  --measure:64ch; --measure-narrow:44ch;
  /* spacing (4px grid) */
  --s-1:.25rem; --s-2:.5rem; --s-3:.75rem; --s-4:1rem; --s-5:1.5rem; --s-6:2rem; --s-7:3rem; --s-8:4rem; --s-9:6rem;
  /* brand: match the visual logo mark, not its padded image box */
  --brand-name-size:1.25rem; --brand-tag-size:.625rem; --brand-line-height:1.2; --brand-name-tracking:.12em; --brand-tag-tracking:.1em; --brand-logo-size:var(--s-7);
  --c-sticky-fade:rgb(255 255 255/0); --c-sticky-base:rgb(255 255 255/.92);
  /* layout */
  --container:78rem; --gutter:var(--s-5); --header-h:5rem; --tap:2.75rem; --border:1px; --focus-w:3px;
  /* radius */
  --r-sm:.5rem; --r-md:.75rem; --r-lg:1.25rem; --r-pill:999px;
  /* shadow */
  --sh-1:0 2px 8px rgb(23 69 103/.06); --sh-2:0 12px 40px rgb(23 69 103/.08);
  /* motion */
  --d-fast:150ms; --d-base:250ms; --d-slow:450ms; --ease-out:cubic-bezier(.2,.7,.2,1); --ease-in-out:cubic-bezier(.4,0,.2,1); --reveal-y:12px;
  --d-hero:400ms; --d-kenburns:24s; --d-drift:18s; --stagger:50ms; --ease-hero:cubic-bezier(.2,.85,.2,1); --hero-y:12px; --kb-scale:1.06; --float-y:6px;
  --hero-portrait-tag-y:56%; --hero-team-tag-y:55%; --hero-actions-gap:var(--s-6); --hero-interval:4s; --d-slide:550ms; --hero-scale:1.08; --hero-blur:4px;
  --d-exit:100ms; --d-image:550ms; --d-inset:430ms; --d-content:350ms; --d-scene:1150ms; --hero-image-start:100ms; --hero-inset-delay:650ms; --hero-content-start:280ms; --hero-highlight-start:650ms; --ease-pop:cubic-bezier(.2,1.12,.35,1); --progress-h:2px;
  --c-aurora-1:rgb(30 111 184/.16); --c-aurora-2:rgb(120 190 230/.22); --c-aurora-3:rgb(185 65 73/.07); --c-glass:rgb(255 255 255/.78); --blur:14px;
  /* misc */
  --border-strong:2px; --opacity-disabled:.5; --opacity-past:.6; --press:1px; --backdrop:rgb(23 61 90/.55);
  --dialog-w:32rem; --cookie-w:24rem; --cover-ratio:16/9; --feature-media:45%;
  /* group promotions: one restrained premium brand-blue card */
  --fs-display:4.25rem; --promo-min-height:20rem; --promo-min-height-mobile:13.75rem;
  --c-premium-start:#124f85; --c-premium-end:var(--c-primary-strong); --c-premium-soft:rgb(255 255 255/.9); --c-premium-light:rgb(255 255 255/.65); --c-premium-wash:rgb(255 255 255/.04); --c-premium-clear:rgb(255 255 255/0);
  --sh-premium:0 16px 36px rgb(23 69 103/.16);
  --package-value-width:7rem; --package-media-share:40%;
  /* card sizes */
  --card-w:20rem; --card-w-sm:16.5rem; --media-ratio:4/3; --portrait-ratio:3/4;
}
@media (max-width:75rem){:root{--brand-name-size:1.0625rem}}
@media (max-width:48rem){:root{--fs-display:3.5rem; --brand-name-size:1rem; --brand-tag-size:.5625rem; --brand-tag-tracking:.08em; --fs-3xl:1.75rem; --fs-4xl:2.25rem; --fs-2xl:1.5rem; --gutter:var(--s-4); --header-h:4.25rem; --card-w:calc(100vw - var(--gutter)*2 - var(--s-7)); --card-w-sm:calc(100vw - var(--gutter)*2 - var(--s-8)); --header-h:4rem; --topbar-h:calc(var(--fs-xs)*var(--lh-body) + var(--s-2)*2); --hero-pad-top:var(--s-3); --hero-media-gap:var(--s-3); --hero-title-mobile:1.875rem; --hero-actions-gap:var(--s-4)}}
@media (prefers-reduced-motion:reduce){:root{--d-fast:0ms; --d-base:0ms; --d-slow:0ms; --reveal-y:0px; --d-hero:0ms; --stagger:0ms; --hero-y:0px; --kb-scale:1; --float-y:0px; --d-slide:0ms; --hero-scale:1; --hero-blur:0px; --d-exit:0ms; --d-image:0ms; --d-inset:0ms; --d-content:0ms; --d-scene:0ms; --hero-image-start:0ms; --hero-inset-delay:0ms; --hero-content-start:0ms; --hero-highlight-start:0ms}}
