/* Thuận Thiên global styles: fonts, design tokens, themes, base elements.
   Prefix --tt-, English names only. Default theme = neutral. */
@font-face{font-family:"Poppins VN";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/poppins-vn-400.woff2") format("woff2")}
@font-face{font-family:"Poppins VN";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/poppins-vn-500.woff2") format("woff2")}
@font-face{font-family:"Poppins VN";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/poppins-vn-600.woff2") format("woff2")}
@font-face{font-family:"Poppins VN";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/poppins-vn-700.woff2") format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:200 800;font-display:swap;src:url("../fonts/bricolage-grotesque-vietnamese-wght-normal.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}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:200 800;font-display:swap;src:url("../fonts/bricolage-grotesque-latin-wght-normal.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}

:root{
  /* neutral palette */
  --tt-ink:#170060;
  --tt-ink-deep:#0B0033;
  --tt-ink-soft:#2A2250;
  --tt-text:#282143;
  --tt-muted:#5E5779;
  --tt-paper:#FFFFFF;
  --tt-white:#fff;
  --tt-line:rgba(23,0,96,.12);
  --tt-line-strong:rgba(23,0,96,.2);
  --tt-line-soft:rgba(23,0,96,.075);
  --tt-quote-dim:#B8AEC5;
  --tt-accent-on-dark:#FF8FB6;
  --tt-on-dark:#CCC7DD;
  --tt-on-dark-muted:#B8B0CE;
  --tt-line-on-dark:rgba(255,255,255,.15);

  /* site-wide CTA (accounting pink) */
  --tt-cta:#F70666;
  --tt-cta-ink:#B30149;
  --tt-cta-wash:#FFE9F2;
  --tt-cta-btn:#FF0168; /* brand pink for filled buttons */
  --tt-bg-foot:radial-gradient(ellipse 36rem 24rem at 2% 100%,rgba(0,221,195,.10),transparent 70%),radial-gradient(ellipse 34rem 24rem at 98% 85%,rgba(247,6,102,.07),transparent 70%),radial-gradient(ellipse 38rem 22rem at 55% 105%,rgba(52,0,255,.07),transparent 70%);

  /* active theme: neutral is the default */
  --tt-th:#170060;
  --tt-th-wash:#F1EFF8;
  --tt-th-ink:#170060;
  --tt-th-on:#fff;
  --tt-th-deep:#0B0033;
  --tt-th-btn:#170060; /* filled-button background */
  /* backgrounds: neutral = mix of all category colors (as archive pages) */
  --tt-bg-hero:radial-gradient(60% 52% at 50% -8%,rgba(247,6,102,.10),transparent 68%),radial-gradient(40% 42% at 6% 6%,rgba(0,221,195,.14),transparent 70%),radial-gradient(44% 44% at 96% 4%,rgba(52,0,255,.10),transparent 68%),radial-gradient(34% 30% at 82% 58%,rgba(255,187,65,.14),transparent 70%),linear-gradient(180deg,#FFF7FA 0%,var(--tt-paper) 66%);
  --tt-bg-page:radial-gradient(ellipse 42rem 35rem at 0 30%,#E5FCFD88,transparent 72%),radial-gradient(ellipse 40rem 28rem at 100% 45%,#FFE9F266,transparent 72%),radial-gradient(ellipse 44rem 30rem at 8% 78%,#EEE9FF88,transparent 72%);

  /* fonts */
  --tt-font-head:"Bricolage Grotesque","Poppins VN",system-ui,sans-serif;
  --tt-font-body:"Poppins VN",system-ui,-apple-system,"Segoe UI",sans-serif;

  /* type scale */
  --tt-fs-h1:clamp(2.75rem,5vw,4.4rem);
  --tt-fs-h2:clamp(2.2rem,3.8vw,3.5rem);
  --tt-fs-h2-s:clamp(1.75rem,3vw,2.45rem);
  --tt-fs-h3:clamp(1.22rem,1.5vw,1.5rem);
  --tt-fs-h4:1.05rem;
  --tt-fs-lead:clamp(1.08rem,1.15vw,1.26rem);
  --tt-fs-body:clamp(1rem,.96rem + .2vw,1.0625rem);
  --tt-fs-small:.875rem;
  --tt-fs-caption:.75rem;
  --tt-fs-h3-l:clamp(1.45rem,2.1vw,1.95rem);
  --tt-fs-quote:clamp(1.55rem,2.9vw,2.7rem);
  --tt-fs-display:clamp(3.4rem,8vw,7.2rem);
  --tt-fs-display-xl:clamp(7rem,13.5vw,11.5rem);
  --tt-lh-h1:1.12;
  --tt-lh-h2:1.16;
  --tt-lh-h2-s:1.22;
  --tt-lh-h3:1.3;
  --tt-lh-h4:1.4;
  --tt-lh-lead:1.66;
  --tt-lh-body:1.7;
  --tt-lh-small:1.6;
  --tt-lh-caption:1.5;
  --tt-ls-h1:-.048em;
  --tt-ls-h2:-.043em;
  --tt-ls-h2-s:-.03em;
  --tt-ls-h3:-.02em;
  --tt-ls-h4:-.012em;
  --tt-ls-caption:.02em;
  --tt-ls-eyebrow:.17em;

  /* layout and spacing */
  --tt-wrap:83.3125rem; /* 1333px */
  --tt-pad:clamp(1.25rem,4vw,2.5rem);
  --tt-sec-y:clamp(4rem,5.6vw,5.9rem);
  --tt-sec-y-s:clamp(2.4rem,3.4vw,3.15rem);
  --tt-head-gap:clamp(2.25rem,4.4vw,3.5rem);
  --tt-hdr:4.75rem;
  --tt-space-1:.25rem;
  --tt-space-2:.5rem;
  --tt-space-3:.75rem;
  --tt-space-4:1rem;
  --tt-space-5:1.5rem;
  --tt-space-6:2rem;
  --tt-space-7:3rem;

  /* radius */
  --tt-r-xs:.6rem;
  --tt-r-s:.75rem;
  --tt-r-m:1.25rem;
  --tt-r-l:2rem;
  --tt-pill:999px;

  /* shadow: light, navy tint */
  --tt-shadow-s:0 1px 2px rgba(23,0,96,.03),0 6px 16px -12px rgba(23,0,96,.10);
  --tt-shadow-m:0 10px 28px -22px rgba(23,0,96,.14);
  --tt-shadow-l:0 18px 44px -30px rgba(23,0,96,.18);

  /* glass */
  --tt-glass-bg:linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,248,251,.88));
  --tt-glass-border:rgba(255,255,255,.96);
  --tt-glass-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(23,0,96,.04),var(--tt-shadow-m);
  --tt-glass-shadow-l:inset 0 1px 0 #fff,var(--tt-shadow-l);
  --tt-glass-shadow-dark:inset 0 1px 0 rgba(255,255,255,.18);
  --tt-glass-blur:10px;
  --tt-glass-blur-strong:20px;

  /* motion and hover */
  --tt-ease:cubic-bezier(.22,.75,.2,1);
  --tt-dur-color:200ms;
  --tt-dur-move:300ms;
  --tt-lift-card:-3px;
  --tt-lift-btn:-2px;
}

/* themes: set on <body> or a section; no class = neutral */
.tt-theme-neutral{--tt-bg-foot:radial-gradient(ellipse 36rem 24rem at 2% 100%,rgba(0,221,195,.10),transparent 70%),radial-gradient(ellipse 34rem 24rem at 98% 85%,rgba(247,6,102,.07),transparent 70%),radial-gradient(ellipse 38rem 22rem at 55% 105%,rgba(52,0,255,.07),transparent 70%);--tt-th:#170060;--tt-th-btn:#170060;--tt-th-wash:#F1EFF8;--tt-th-ink:#170060;--tt-th-on:#fff;--tt-th-deep:#0B0033;--tt-bg-hero:radial-gradient(60% 52% at 50% -8%,rgba(247,6,102,.10),transparent 68%),radial-gradient(40% 42% at 6% 6%,rgba(0,221,195,.14),transparent 70%),radial-gradient(44% 44% at 96% 4%,rgba(52,0,255,.10),transparent 68%),radial-gradient(34% 30% at 82% 58%,rgba(255,187,65,.14),transparent 70%),linear-gradient(180deg,#FFF7FA 0%,var(--tt-paper) 66%);--tt-bg-page:radial-gradient(ellipse 42rem 35rem at 0 30%,#E5FCFD88,transparent 72%),radial-gradient(ellipse 40rem 28rem at 100% 45%,#FFE9F266,transparent 72%),radial-gradient(ellipse 44rem 30rem at 8% 78%,#EEE9FF88,transparent 72%)}
.tt-theme-accounting{--tt-bg-foot:radial-gradient(ellipse 38rem 24rem at 4% 100%,color-mix(in srgb,#F70666 11%,transparent),transparent 70%),radial-gradient(ellipse 34rem 22rem at 96% 90%,color-mix(in srgb,#F70666 7%,transparent),transparent 70%);--tt-th:#F70666;--tt-th-btn:#FF0168;--tt-th-wash:#FFE9F2;--tt-th-ink:#B30149;--tt-th-on:#fff;--tt-th-deep:#3C0018;--tt-bg-hero:radial-gradient(60% 52% at 50% -8%,color-mix(in srgb,#F70666 14%,transparent),transparent 68%),radial-gradient(44% 44% at 96% 4%,color-mix(in srgb,#F70666 9%,transparent),transparent 68%),linear-gradient(180deg,color-mix(in srgb,#FFE9F2 70%,#fff) 0%,var(--tt-paper) 66%);--tt-bg-page:radial-gradient(ellipse 42rem 35rem at 0 30%,color-mix(in srgb,#F70666 10%,transparent),transparent 72%),radial-gradient(ellipse 40rem 28rem at 100% 45%,color-mix(in srgb,#FFE9F2 70%,transparent),transparent 72%)}
.tt-theme-legal{--tt-bg-foot:radial-gradient(ellipse 38rem 24rem at 4% 100%,color-mix(in srgb,#00DDC3 11%,transparent),transparent 70%),radial-gradient(ellipse 34rem 22rem at 96% 90%,color-mix(in srgb,#00DDC3 7%,transparent),transparent 70%);--tt-th:#00DDC3;--tt-th-btn:#00DDC3;--tt-th-wash:#E5FCFD;--tt-th-ink:#04685B;--tt-th-on:#002C27;--tt-th-deep:#002C27;--tt-bg-hero:radial-gradient(60% 52% at 50% -8%,color-mix(in srgb,#00DDC3 14%,transparent),transparent 68%),radial-gradient(44% 44% at 96% 4%,color-mix(in srgb,#00DDC3 9%,transparent),transparent 68%),linear-gradient(180deg,color-mix(in srgb,#E5FCFD 70%,#fff) 0%,var(--tt-paper) 66%);--tt-bg-page:radial-gradient(ellipse 42rem 35rem at 0 30%,color-mix(in srgb,#00DDC3 10%,transparent),transparent 72%),radial-gradient(ellipse 40rem 28rem at 100% 45%,color-mix(in srgb,#E5FCFD 70%,transparent),transparent 72%)}
.tt-theme-tax{--tt-bg-foot:radial-gradient(ellipse 38rem 24rem at 4% 100%,color-mix(in srgb,#FFBB41 11%,transparent),transparent 70%),radial-gradient(ellipse 34rem 22rem at 96% 90%,color-mix(in srgb,#FFBB41 7%,transparent),transparent 70%);--tt-th:#FFBB41;--tt-th-btn:#FFBB41;--tt-th-wash:#FFF6E9;--tt-th-ink:#8A5200;--tt-th-on:#2D1D00;--tt-th-deep:#2D1D00;--tt-bg-hero:radial-gradient(60% 52% at 50% -8%,color-mix(in srgb,#FFBB41 14%,transparent),transparent 68%),radial-gradient(44% 44% at 96% 4%,color-mix(in srgb,#FFBB41 9%,transparent),transparent 68%),linear-gradient(180deg,color-mix(in srgb,#FFF6E9 70%,#fff) 0%,var(--tt-paper) 66%);--tt-bg-page:radial-gradient(ellipse 42rem 35rem at 0 30%,color-mix(in srgb,#FFBB41 10%,transparent),transparent 72%),radial-gradient(ellipse 40rem 28rem at 100% 45%,color-mix(in srgb,#FFF6E9 70%,transparent),transparent 72%)}
.tt-theme-other{--tt-bg-foot:radial-gradient(ellipse 38rem 24rem at 4% 100%,color-mix(in srgb,#3400FF 11%,transparent),transparent 70%),radial-gradient(ellipse 34rem 22rem at 96% 90%,color-mix(in srgb,#3400FF 7%,transparent),transparent 70%);--tt-th:#3400FF;--tt-th-btn:#3400FF;--tt-th-wash:#EEE9FF;--tt-th-ink:#2A00CC;--tt-th-on:#fff;--tt-th-deep:#0C003B;--tt-bg-hero:radial-gradient(60% 52% at 50% -8%,color-mix(in srgb,#3400FF 14%,transparent),transparent 68%),radial-gradient(44% 44% at 96% 4%,color-mix(in srgb,#3400FF 9%,transparent),transparent 68%),linear-gradient(180deg,color-mix(in srgb,#EEE9FF 70%,#fff) 0%,var(--tt-paper) 66%);--tt-bg-page:radial-gradient(ellipse 42rem 35rem at 0 30%,color-mix(in srgb,#3400FF 10%,transparent),transparent 72%),radial-gradient(ellipse 40rem 28rem at 100% 45%,color-mix(in srgb,#EEE9FF 70%,transparent),transparent 72%)}

@media (prefers-reduced-motion:reduce){:root{--tt-lift-card:0px;--tt-lift-btn:0px}}

/* base */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--tt-hdr) + 2rem);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--tt-paper);color:var(--tt-text);font:400 var(--tt-fs-body)/var(--tt-lh-body) var(--tt-font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4{font-family:var(--tt-font-head);color:var(--tt-ink);font-weight:700;text-wrap:balance}
h1{font-size:var(--tt-fs-h1);line-height:var(--tt-lh-h1);letter-spacing:var(--tt-ls-h1)}
h2{font-size:var(--tt-fs-h2);line-height:var(--tt-lh-h2);letter-spacing:var(--tt-ls-h2)}
h3{font-size:var(--tt-fs-h3);line-height:var(--tt-lh-h3);letter-spacing:var(--tt-ls-h3)}
h4{font-size:var(--tt-fs-h4);line-height:var(--tt-lh-h4);letter-spacing:var(--tt-ls-h4)}
a{color:inherit;text-decoration:none}
::selection{background:var(--tt-th);color:var(--tt-th-on)}
:focus-visible{outline:3px solid var(--tt-th-ink);outline-offset:3px;border-radius:var(--tt-r-xs)}
[hidden]{display:none!important}
.tt-wrap{width:min(100% - 2*var(--tt-pad),var(--tt-wrap));margin-inline:auto}
.tt-sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* typography utilities */
.tt-h1{font:700 var(--tt-fs-h1)/var(--tt-lh-h1) var(--tt-font-head);letter-spacing:var(--tt-ls-h1);color:var(--tt-ink)}
.tt-h2{font:700 var(--tt-fs-h2)/var(--tt-lh-h2) var(--tt-font-head);letter-spacing:var(--tt-ls-h2);color:var(--tt-ink)}
.tt-h2-s{font:700 var(--tt-fs-h2-s)/var(--tt-lh-h2-s) var(--tt-font-head);letter-spacing:var(--tt-ls-h2-s);color:var(--tt-ink)}
.tt-h3{font:700 var(--tt-fs-h3)/var(--tt-lh-h3) var(--tt-font-head);letter-spacing:var(--tt-ls-h3);color:var(--tt-ink)}
.tt-h4{font:700 var(--tt-fs-h4)/var(--tt-lh-h4) var(--tt-font-head);letter-spacing:var(--tt-ls-h4);color:var(--tt-ink)}
.tt-lead{font-size:var(--tt-fs-lead);line-height:var(--tt-lh-lead);color:var(--tt-muted);text-wrap:pretty}
.tt-small{font-size:var(--tt-fs-small);line-height:var(--tt-lh-small)}
.tt-caption{font-size:var(--tt-fs-caption);line-height:var(--tt-lh-caption);letter-spacing:var(--tt-ls-caption);font-weight:500}
.tt-muted{color:var(--tt-muted)}
.tt-eyebrow{display:inline-flex;align-items:center;gap:.55rem;font:600 var(--tt-fs-caption)/1.2 var(--tt-font-body);letter-spacing:var(--tt-ls-eyebrow);text-transform:uppercase;color:var(--tt-th-ink)}
.tt-eyebrow::before{content:"";width:.5rem;height:.5rem;border-radius:100% 0 100% 0;background:var(--tt-th)}
.tt-num{font-variant-numeric:tabular-nums}

/* interaction: one hover style for links, one for cards */
.tt-link{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:.2em;transition:color var(--tt-dur-color) var(--tt-ease),text-decoration-color var(--tt-dur-color) var(--tt-ease)}
.tt-link:hover,.tt-link:focus-visible{color:var(--tt-th-ink);text-decoration-color:currentColor}
.tt-lift{border:1px solid transparent;transition:transform var(--tt-dur-move) var(--tt-ease),box-shadow var(--tt-dur-move) var(--tt-ease),border-color var(--tt-dur-color) var(--tt-ease)}
.tt-lift:hover,.tt-lift:focus-within{transform:translateY(var(--tt-lift-card));box-shadow:var(--tt-shadow-l);border-color:color-mix(in srgb,var(--tt-th) 30%,#fff)}

.tt-page-bg{background:var(--tt-bg-page)}
.tt-page-foot{background:var(--tt-bg-foot);padding-bottom:clamp(2.5rem,5vw,4.5rem)}

/* Accent on dark blocks follows the page theme (accounting keeps the brand pink default). */
.tt-theme-legal,.tt-theme-tax,.tt-theme-other{--tt-accent-on-dark:color-mix(in srgb,var(--tt-th) 62%,#fff)}
