/* ───────── Global tokens (shared by all pages) ───────── */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+TC:wght@200;300;400;500;700;900&family=Lato:wght@300;400;700&display=swap");

:root {
  --twex-indigo-950: #150F32;
  --twex-indigo-900: #190E62;
  --twex-indigo-700: #231A54;
  --twex-gold:       #EDBD5D;

  --font-cjk:   "Noto Sans TC", "PingFang TC", "Heiti TC", "Microsoft JhengHei", sans-serif;
  --font-latin: "Inter", "Lato", sans-serif;
  --font-nav:   "Lato", "Noto Sans TC", sans-serif;
  --font-sans:  -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang TC", "Microsoft JhengHei", sans-serif;

  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; min-height: 100vh; }
html { scroll-behavior: smooth; }

body {
  font-family: var(--font-sans);
  background-color: var(--twex-indigo-950);
  background-image: url("assets/bg_top.png");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: cover;
  background-attachment: fixed;
  color: rgba(255,255,255,.9);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body::before {
  content: "";
  position: fixed; inset: 0;
  background:
    radial-gradient(ellipse 60% 40% at 20% 10%, rgba(62,30,230,0.18) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 70%, rgba(161,150,230,0.10) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
body.no-scroll { overflow: hidden; }

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
