/* ===========================================
   MIGAS — Design tokens & global styles
   =========================================== */
:root {
  /* Brand: Biru tua + emas (default) */
  --c-primary-900: #0b2545;
  --c-primary-800: #13315c;
  --c-primary-700: #1a4480;
  --c-primary-600: #2563a8;
  --c-primary-100: #e6edf6;
  --c-accent-600: #b8862c;     /* gold */
  --c-accent-500: #d4a24a;
  --c-accent-100: #f6ecd2;

  /* Neutrals */
  --c-ink-900: #0e1726;
  --c-ink-700: #2c3a52;
  --c-ink-500: #5a6b85;
  --c-ink-400: #8593ab;
  --c-ink-300: #b9c2d3;
  --c-line: #e3e7ef;
  --c-line-strong: #cdd4e0;
  --c-bg: #ffffff;
  --c-bg-soft: #f5f7fb;
  --c-bg-tint: #eef2f8;

  /* Status */
  --c-up: #1f8a5b;
  --c-down: #c2453a;
  --c-warn: #c98a13;

  /* Type */
  --ff-sans: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --ff-serif: 'Source Serif 4', 'Lora', Georgia, 'Times New Roman', serif;
  --ff-mono: 'JetBrains Mono', ui-monospace, Menlo, monospace;
  --ff-display: var(--ff-sans);

  /* Density */
  --space-unit: 4px;
  --gutter: 24px;
  --section-y: 80px;
  --container: 1280px;

  /* Radii / shadow */
  --r-sm: 4px;
  --r-md: 8px;
  --r-lg: 14px;
  --shadow-1: 0 1px 2px rgba(14, 23, 38, 0.05), 0 1px 1px rgba(14,23,38,0.04);
  --shadow-2: 0 6px 20px rgba(14, 23, 38, 0.08);
}

/* Color tweaks: hijau */
[data-palette="hijau"] {
  --c-primary-900: #0e3b2e;
  --c-primary-800: #155242;
  --c-primary-700: #1b6a55;
  --c-primary-600: #2a8a70;
  --c-primary-100: #e3f1ec;
  --c-accent-600: #b8862c;
  --c-accent-500: #d4a24a;
  --c-accent-100: #f6ecd2;
}
/* maroon */
[data-palette="maroon"] {
  --c-primary-900: #4a1418;
  --c-primary-800: #5e1a20;
  --c-primary-700: #7a2128;
  --c-primary-600: #9b3239;
  --c-primary-100: #f3e3e4;
  --c-accent-600: #b8862c;
  --c-accent-500: #d4a24a;
  --c-accent-100: #f6ecd2;
}

/* Density */
[data-density="compact"] {
  --gutter: 16px;
  --section-y: 56px;
}

/* Font */
[data-font="serif"] {
  --ff-display: var(--ff-serif);
}

/* Dark */
[data-theme="dark"] {
  --c-bg: #0a1424;
  --c-bg-soft: #0f1c33;
  --c-bg-tint: #14253f;
  --c-ink-900: #eef2f8;
  --c-ink-700: #c7cfdc;
  --c-ink-500: #8593ab;
  --c-ink-400: #6a7892;
  --c-ink-300: #3d4b66;
  --c-line: #1c2c47;
  --c-line-strong: #2a3c5a;
  --c-primary-100: #16294a;
  --shadow-1: 0 1px 2px rgba(0,0,0,0.4);
  --shadow-2: 0 6px 20px rgba(0,0,0,0.5);
}

* { box-sizing: border-box; }
html, body {
  margin: 0;
  padding: 0;
  font-family: var(--ff-sans);
  color: var(--c-ink-900);
  background: var(--c-bg);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: 0; background: transparent; color: inherit; }

.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.h-display {
  font-family: var(--ff-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  text-wrap: balance;
}

.eyebrow {
  font-family: var(--ff-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-primary-700);
}
[data-theme="dark"] .eyebrow { color: var(--c-accent-500); }

.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: var(--r-sm);
  font-weight: 600;
  font-size: 14px;
  transition: all .15s ease;
  border: 1px solid transparent;
  white-space: nowrap;
}
.btn-primary { background: var(--c-primary-800); color: #fff; }
.btn-primary:hover { background: var(--c-primary-900); }
.btn-accent { background: var(--c-accent-500); color: var(--c-primary-900); }
.btn-accent:hover { background: var(--c-accent-600); color: #fff; }
.btn-ghost { background: transparent; color: var(--c-ink-900); border-color: var(--c-line-strong); }
.btn-ghost:hover { background: var(--c-bg-soft); }

.bilingual {
  display: block;
}
.bilingual .lang-en {
  display: block;
  font-size: 0.78em;
  color: var(--c-ink-500);
  font-weight: 400;
  font-family: var(--ff-sans);
  letter-spacing: 0;
  margin-top: 2px;
}

/* Subtle striped placeholder */
.placeholder-stripes {
  background-image: repeating-linear-gradient(
    -45deg,
    var(--c-bg-tint) 0 12px,
    var(--c-bg-soft) 12px 24px
  );
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-mono);
  font-size: 11px;
  color: var(--c-ink-500);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid var(--c-line);
}

.divider {
  height: 1px;
  background: var(--c-line);
  width: 100%;
}

.tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--c-primary-100);
  color: var(--c-primary-800);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.tag-accent { background: var(--c-accent-100); color: var(--c-accent-600); }

.section {
  padding: var(--section-y) 0;
}
.section-title {
  font-family: var(--ff-display);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 8px;
  line-height: 1.1;
}
.section-sub {
  color: var(--c-ink-500);
  margin: 0 0 32px;
  max-width: 640px;
}

/* Cards */
.card {
  background: var(--c-bg);
  border: 1px solid var(--c-line);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: border-color .15s, transform .15s, box-shadow .15s;
}
.card:hover {
  border-color: var(--c-primary-600);
  box-shadow: var(--shadow-2);
}
[data-density="compact"] .card { border-radius: var(--r-sm); }

/* Form */
input, select, textarea {
  font: inherit;
  color: var(--c-ink-900);
  background: var(--c-bg);
  border: 1px solid var(--c-line-strong);
  border-radius: var(--r-sm);
  padding: 10px 14px;
  width: 100%;
  outline: none;
}
input:focus, select:focus, textarea:focus { border-color: var(--c-primary-700); }

/* Scrollbar tame */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--c-bg-soft); }
::-webkit-scrollbar-thumb { background: var(--c-line-strong); border-radius: 6px; }
