
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  --brand: #164B70;
  --brand-light: #28688F;
  --brand-dark: #103750;
  --brand-soft: #EAF2F8;

  --cinder: #142D45;
  --cinder-light: #23455F;
  --cinder-dark: #102438;
  --cinder-deep: #0B1929;

  --white: #FFFFFF;
  --off-white: #FAFAFA;
  --gray-50: #F8F9FB;
  --gray-100: #F1F3F5;
  --gray-200: #E4E7EB;
  --gray-300: #CBD2D9;
  --gray-400: #9AA5B1;
  --gray-500: #7B8794;
  --gray-600: #616E7C;
  --gray-700: #52606D;
  --gray-800: #3E4C59;
  --gray-900: #1F2933;

  --bg: #FFFFFF;
  --bg-alt: #F8F9FB;
  --text: var(--cinder);
  --text-muted: var(--gray-600);
  --border: var(--gray-200);
  --card-bg: #FFFFFF;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.07);
  --shadow-lg: 0 12px 32px rgba(0,0,0,0.1);
  --shadow-xl: 0 24px 64px rgba(0,0,0,0.14);
  --shadow-brand: 0 8px 32px rgba(22,75,112,0.25);

  --container: 1200px;
  --radius-sm: 8px;
  --radius: 16px;
  --radius-lg: 24px;

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

[data-theme="dark"] {
  --bg: #121218;
  --bg-alt: #102438;
  --text: #E8E8F0;
  --text-muted: #9A9AB0;
  --border: #2A2A38;
  --card-bg: #1E1E2A;
  --gray-50: #102438;
  --gray-100: #24242E;
  --gray-200: #2A2A38;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.3);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.4);
  --shadow-lg: 0 12px 32px rgba(0,0,0,0.5);
  --shadow-xl: 0 24px 64px rgba(0,0,0,0.6);
  --shadow-brand: 0 8px 32px rgba(22,75,112,0.35);
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html{scroll-behavior:smooth}
body {
  font-family: 'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 16px; line-height: 1.65;
  color: var(--text);
  background: #FFFFFF;
  overflow-x: hidden;
  transition: background 0.5s var(--ease-out), color 0.5s var(--ease-out);
  -webkit-font-smoothing: antialiased;
}
body.no-scroll { overflow: hidden; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
::selection { background: var(--brand); color: white; }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--gray-100); }
::-webkit-scrollbar-thumb { background: var(--gray-300); border-radius: 5px; border: 2px solid var(--gray-100); }
::-webkit-scrollbar-thumb:hover { background: var(--brand); }

#loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.15rem;
  padding: 2rem;
  text-align: center;
  background:
    radial-gradient(circle at 50% 38%, rgba(181,139,66,.13), transparent 28%),
    linear-gradient(135deg, #0b1f31 0%, #123a56 52%, #0b1f31 100%);
  transition: opacity .65s var(--ease-out), visibility .65s;
}
#loader::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .18;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 38px 38px;
  mask-image: linear-gradient(to bottom, transparent, #000 24%, #000 76%, transparent);
}
#loader.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.loader-mark {
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(233,203,141,.34);
  border-radius: 18px;
  color: #E9CB8D;
  background: rgba(255,255,255,.045);
  box-shadow: 0 18px 55px rgba(0,0,0,.24), inset 0 0 0 1px rgba(255,255,255,.035);
  animation: loaderFadeIn .65s var(--ease-out) both;
}
.loader-mark .ui-icon {
  width: 38px;
  height: 38px;
}
.loader-identity {
  position: relative;
  animation: loaderFadeIn .72s .08s var(--ease-out) both;
}
.loader-title {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: clamp(1.65rem, 4vw, 2.5rem);
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -.035em;
  color: #fff;
}
.loader-title span { color: #E9CB8D; }
.loader-subtitle {
  margin-top: .42rem;
  font-size: clamp(.78rem, 1.6vw, .95rem);
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: rgba(236,244,250,.78);
}
.loader-bar-wrap {
  position: relative;
  width: min(300px, 72vw);
  height: 3px;
  margin-top: .25rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
}
.loader-bar-fill {
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #8ebfe0, #E9CB8D);
  box-shadow: 0 0 18px rgba(233,203,141,.36);
  animation: loaderProgress 1.35s var(--ease-out) forwards;
}
@keyframes loaderProgress {
  0% { width: 0; }
  38% { width: 43%; }
  72% { width: 78%; }
  100% { width: 100%; }
}
@keyframes loaderFadeIn {
  from { opacity: 0; transform: translateY(12px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.loader-tagline {
  font-size: .69rem;
  line-height: 1.4;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(224,235,244,.58);
  font-weight: 600;
  animation: loaderFadeIn .72s .16s var(--ease-out) both;
}

.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 9000;
  transition: all 0.4s var(--ease-out);
}
.nav::before {
  content: ''; position: absolute; inset: 0;
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  opacity: 0; transition: opacity 0.4s var(--ease-out);
}
[data-theme="dark"] .nav::before { background: rgba(18,18,24,0.9); }
.nav.scrolled::before { opacity: 1; }
.nav.scrolled { box-shadow: 0 1px 0 var(--border), 0 8px 24px rgba(0,0,0,0.06); }
.nav-inner {
  max-width: var(--container); margin: 0 auto; padding: 1rem 2rem;
  display: flex; align-items: center; justify-content: space-between; gap: 2rem; position: relative;
}
.nav-brand { display: flex; align-items: center; gap: 0.7rem; font-weight: 800; font-size: 1rem; flex-shrink: 0; transition: opacity 0.3s; }
.nav-brand:hover { opacity: 0.75; }
.nav-brand-emblem {
  width: 40px; height: 40px; border-radius: 10px;
  background: linear-gradient(135deg, var(--brand), var(--brand-dark));
  display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem; color: white; box-shadow: var(--shadow-brand);
}
.nav-brand-text small { display: block; font-size: 0.62rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted); line-height: 1.2; }
.nav-links { display: flex; gap: 0.3rem; list-style: none; align-items: center; }
.nav-links a {
  position: relative; padding: 0.6rem 0.9rem; font-size: 0.85rem; font-weight: 500;
  color: var(--text-muted); border-radius: var(--radius-sm); transition: all 0.25s var(--ease-out); white-space: nowrap;
}
.nav-links a:hover { color: var(--text); background: var(--gray-100); }
.nav-links a.active { color: var(--brand); font-weight: 600; }
.nav-links a.active::after { content: ''; position: absolute; bottom: 2px; left: 50%; transform: translateX(-50%); width: 18px; height: 2px; background: var(--brand); border-radius: 1px; }
.nav-actions { display: flex; align-items: center; gap: 0.5rem; }
.nav-btn {
  width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 1.05rem; color: var(--text-muted); background: transparent; border: 1px solid var(--border); transition: all 0.25s var(--ease-out);
}
.nav-btn:hover { color: var(--brand); border-color: var(--brand); background: rgba(22,75,112,0.06); transform: translateY(-1px); }
.nav-lang-btn { width: auto; padding: 0 0.9rem; border-radius: 20px; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.03em; }
.nav-hamburger { display: none; flex-direction: column; gap: 5px; padding: 8px; }
.nav-hamburger span { width: 22px; height: 2px; background: var(--text); border-radius: 2px; transition: all 0.35s var(--ease-out); transform-origin: center; }
.nav-hamburger.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-hamburger.active span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-hamburger.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.hero {
  position: relative; min-height: 100vh;
  display: flex; align-items: flex-end;
  padding: 8rem 2rem 5rem; overflow: hidden;
  background: #FFFFFF;
}
.hero-bg { position: absolute; inset: 0; z-index: 0; }
.hero-bg img {
  width: 100%; height: 100%; object-fit: cover;
  object-position: center 55%;
  opacity: 1;
  transition: transform 8s var(--ease-out);
  filter: saturate(1.05) contrast(1.08) brightness(1.05);
}
.hero:hover .hero-bg img { transform: scale(1.04); }
.hero-bg::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to top,
    rgba(255,255,255,0.98) 0%,
    rgba(255,255,255,0.88) 15%,
    rgba(255,255,255,0.55) 40%,
    rgba(255,255,255,0.15) 65%,
    rgba(255,255,255,0.05) 100%);
}
.hero-bg::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse at 85% 15%, rgba(22,75,112,0.08), transparent 50%),
              radial-gradient(ellipse at 15% 85%, rgba(22,75,112,0.04), transparent 45%);
  z-index: 1;
}
.hero-inner {
  position: relative; z-index: 2;
  max-width: var(--container); margin: 0 auto; width: 100%;
  display: grid; grid-template-columns: 1fr auto;
  gap: 4rem; align-items: flex-end;
}
.hero-content { max-width: 720px; }
.hero-eyebrow {
  display: inline-flex; align-items: center; gap: 0.6rem;
  padding: 0.5rem 1.1rem; border-radius: 100px;
  background: rgba(22,75,112,0.08);
  border: 1px solid rgba(22,75,112,0.2);
  backdrop-filter: blur(12px);
  color: var(--brand-dark);
  font-size: 0.75rem; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase;
  margin-bottom: 1.8rem;
  animation: heroFadeUp 1s var(--ease-out) 0.3s both;
}
.hero-eyebrow-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--brand); box-shadow: 0 0 12px var(--brand);
  animation: pulseDot 2s ease-in-out infinite;
}
@keyframes pulseDot { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(0.8); } }
.hero h1 {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: clamp(2.2rem, 5.5vw, 4rem);
  font-weight: 800; line-height: 1.08;
  letter-spacing: -0.03em; color: var(--cinder);
  margin-bottom: 1.5rem;
  animation: heroFadeUp 1s var(--ease-out) 0.45s both;
}
.hero h1 em { font-style: italic; color: var(--brand); font-weight: 600; }
.hero-desc {
  font-size: 1.08rem; line-height: 1.7;
  color: var(--gray-700);
  max-width: 560px; margin-bottom: 2.5rem;
  animation: heroFadeUp 1s var(--ease-out) 0.6s both;
}
.hero-actions { display: flex; gap: 0.9rem; flex-wrap: wrap; animation: heroFadeUp 1s var(--ease-out) 0.75s both; }
@keyframes heroFadeUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
.btn {
  display: inline-flex; align-items: center; gap: 0.6rem;
  padding: 0.9rem 1.8rem; border-radius: 100px;
  font-size: 0.93rem; font-weight: 600;
  letter-spacing: -0.01em; transition: all 0.3s var(--ease-out);
}
.btn-primary { background: var(--brand); color: white; box-shadow: var(--shadow-brand); }
.btn-primary:hover { background: var(--brand-dark); transform: translateY(-2px); box-shadow: 0 12px 40px rgba(22,75,112,0.4); }
.btn-ghost {
  background: rgba(255,255,255,0.85);
  color: var(--cinder);
  border: 1.5px solid var(--gray-300);
  backdrop-filter: blur(12px);
}
.btn-ghost:hover { background: white; border-color: var(--brand); color: var(--brand); transform: translateY(-2px); }
.btn-arrow { transition: transform 0.3s var(--ease-out); }
.btn:hover .btn-arrow { transform: translateX(4px); }

.hero-stats { display: flex; flex-direction: column; gap: 1rem; animation: heroFadeUp 1s var(--ease-out) 0.9s both; }
.hero-stat {
  background: rgba(255,255,255,0.9);
  border: 1px solid var(--gray-200);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border-radius: var(--radius); padding: 1.1rem 1.4rem;
  min-width: 180px; transition: all 0.35s var(--ease-out);
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.hero-stat:hover { background: white; border-color: var(--brand); transform: translateX(-4px); box-shadow: 0 8px 24px rgba(22,75,112,0.15); }
.hero-stat.quick-nav{cursor:pointer;position:relative;padding-right:2.2rem;text-decoration:none;color:inherit}
.hero-stat.quick-nav::after{content:'→';position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-weight:700;color:var(--brand);opacity:.7;transition:transform .25s ease,opacity .25s ease}
.hero-stat.quick-nav:hover::after{transform:translate(3px,-50%);opacity:1}
.hero-stat.quick-nav:focus-visible{outline:3px solid rgba(181,139,66,.35);outline-offset:4px}
.hero-stat-value { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 1.8rem; font-weight: 700; color: var(--cinder); line-height: 1; margin-bottom: 0.25rem; }
.hero-stat-value span { color: var(--brand); }
.hero-stat-label { font-size: 0.72rem; color: var(--gray-600); letter-spacing: 0.06em; text-transform: uppercase; font-weight: 600; }
.hero-scroll {
  position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%); z-index: 3;
  display: flex; flex-direction: column; align-items: center; gap: 0.5rem;
  color: var(--gray-500); font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase;
  animation: heroFadeUp 1s var(--ease-out) 1.2s both;
}
.hero-scroll-line { width: 1px; height: 48px; background: linear-gradient(to bottom, var(--gray-400), transparent); position: relative; overflow: hidden; }
.hero-scroll-line::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 40%; background: var(--brand); animation: scrollLine 2s ease-in-out infinite; }
@keyframes scrollLine { 0% { transform: translateY(-100%); } 100% { transform: translateY(250%); } }

.section { padding: 7rem 2rem; position: relative; background: #FFFFFF; }
.section-alt { background: #F8F9FB; }
.section-inner { max-width: var(--container); margin: 0 auto; }
.section-header { margin-bottom: 4rem; max-width: 640px; }
.section-header.centered { margin-left: auto; margin-right: auto; text-align: center; }
.section-label {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.73rem; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--brand); margin-bottom: 1rem;
}
.section-label::before { content: ''; width: 28px; height: 2px; background: linear-gradient(90deg, var(--brand), var(--brand-light)); border-radius: 1px; }
.section-header.centered .section-label::before { display: none; }
.section-header.centered .section-label { justify-content: center; }
.section-title {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: clamp(1.8rem, 3.8vw, 2.8rem);
  font-weight: 700; line-height: 1.15;
  letter-spacing: -0.025em; margin-bottom: 1rem;
}
.section-subtitle { font-size: 1.02rem; color: var(--text-muted); line-height: 1.7; }

.struktur-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.struktur-leader{
  position:relative;
  max-width:760px;
  margin:0 auto 2.4rem;
  padding:1.6rem 1.8rem;
  background:linear-gradient(135deg, rgba(22,75,112,.07), rgba(181,139,66,.08));
  border:1px solid rgba(181,139,66,.38);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1.2rem;
  align-items:center;
}
.struktur-leader::after{
  content:'';
  position:absolute;
  left:50%;
  bottom:-1.2rem;
  width:1px;
  height:1.2rem;
  background:linear-gradient(to bottom, rgba(181,139,66,.72), rgba(22,75,112,.30));
}
.struktur-leader-icon{
  width:64px;height:64px;border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  background:#142D45;color:#E9CB8D;border:1px solid #B58B42;
  flex-shrink:0;
}
.struktur-leader-icon .ui-icon{width:30px;height:30px}
.struktur-leader-eyebrow{
  display:block;
  font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:#8B6A32;margin-bottom:.25rem;
}
.struktur-leader h3{font-size:1.18rem;font-weight:800;margin-bottom:.35rem}
.struktur-leader{cursor:pointer;transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out),border-color .3s ease}
.struktur-leader:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(181,139,66,.62)}
.struktur-leader:focus-visible{outline:3px solid rgba(181,139,66,.35);outline-offset:4px}
.struktur-leader p{color:var(--text-muted);font-size:.9rem;line-height:1.7;margin:0}
@media(max-width:640px){
  .struktur-leader{grid-template-columns:1fr;text-align:center;padding:1.4rem}
  .struktur-leader-icon{margin:0 auto}
}

.struktur-card {
  background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: 2rem; text-align: center; transition: all 0.4s var(--ease-out);
  position: relative; overflow: hidden; cursor: pointer;
}
.struktur-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px; background: linear-gradient(90deg, var(--brand), var(--brand-light)); transform: scaleX(0); transform-origin: left; transition: transform 0.5s var(--ease-out); }
.struktur-card:hover::before { transform: scaleX(1); }
.struktur-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.struktur-icon { width: 64px; height: 64px; border-radius: 16px; background: linear-gradient(135deg, var(--gray-100), var(--gray-50)); display: flex; align-items: center; justify-content: center; font-size: 1.8rem; margin: 0 auto 1.2rem; transition: all 0.4s var(--ease-out); }
.struktur-card:hover .struktur-icon { background: transparent; transform: scale(1.06); box-shadow: none; }
.struktur-logo-img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;max-width:100%;max-height:100%}
.struktur-leader-icon.struktur-logo{width:78px;height:78px;background:transparent;border:none;box-shadow:none;padding:0;overflow:visible}
.struktur-icon.struktur-logo{width:76px;height:76px;background:transparent;border:none;box-shadow:none;padding:0;overflow:visible}
.modal-icon.struktur-logo{width:92px;height:92px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center}
.modal-icon.struktur-logo .struktur-logo-img{width:100%;height:100%}
.struktur-card h3 { font-size: 1.05rem; font-weight: 700; margin-bottom: 0.5rem; }
.struktur-card p { color: var(--text-muted); font-size: 0.88rem; line-height: 1.7; margin-bottom: 1rem; }
.struktur-link { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.82rem; font-weight: 600; color: var(--brand); transition: gap 0.3s; }
.struktur-card:hover .struktur-link { gap: 0.7rem; }

.regulasi-category { margin-bottom: 3rem; }
.regulasi-category-title { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 1.3rem; font-weight: 700; margin-bottom: 1.5rem; padding-bottom: 0.8rem; border-bottom: 2px solid var(--gray-200); display: flex; align-items: center; gap: 0.7rem; }
.regulasi-category-title .cat-icon { width: 52px; height: 52px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; color: white; background:transparent!important; overflow:hidden; }
.regulasi-category-title .cat-icon img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.regulasi-category-title .cat-icon:hover{transform:scale(1.04);transition:transform .2s ease}
.cat-icon.dasar { background: linear-gradient(135deg, var(--cinder), var(--cinder-light)); }
.cat-icon.operasional { background: linear-gradient(135deg, var(--brand), var(--brand-light)); }
.cat-icon.keuangan { background: linear-gradient(135deg, var(--brand-dark), var(--brand)); }
.cat-icon.pdln { background: linear-gradient(135deg, var(--cinder-light), var(--cinder)); }
.cat-icon.paspor { background: linear-gradient(135deg, var(--brand-light), var(--brand-dark)); }
.regulasi-list { display: flex; flex-direction: column; gap: 0.75rem; }
.regulasi-item { background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.3rem 1.6rem; display: flex; align-items: flex-start; gap: 1.2rem; transition: all 0.35s var(--ease-out); position: relative; overflow: hidden; cursor: pointer; }
.regulasi-item::before { content: ''; position: absolute; left: 0; top: 0; width: 3px; height: 100%; background: linear-gradient(to bottom, var(--brand), var(--brand-light)); transform: scaleY(0); transform-origin: top; transition: transform 0.4s var(--ease-out); }
.regulasi-item:hover::before { transform: scaleY(1); }
.regulasi-item:hover { transform: translateX(6px); box-shadow: var(--shadow-md); border-color: transparent; }
.regulasi-num { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 1.4rem; font-weight: 800; color: var(--brand); line-height: 1; flex-shrink: 0; width: 40px; opacity: 0.4; transition: opacity 0.3s; }
.regulasi-item:hover .regulasi-num { opacity: 1; }
.regulasi-content { flex: 1; }
.regulasi-content h4 { font-size: 0.95rem; font-weight: 700; margin-bottom: 0.25rem; line-height: 1.4; }
.regulasi-content p { color: var(--text-muted); font-size: 0.85rem; line-height: 1.6; }
.regulasi-tag { display: inline-block; margin-top: 0.4rem; padding: 0.18rem 0.65rem; border-radius: 100px; font-size: 0.65rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.tag-utama { background: rgba(22,75,112,0.1); color: var(--brand); }
.tag-penting { background: rgba(22,75,112,0.08); color: var(--brand-dark); }
.tag-terkini { background: rgba(40,104,143,0.1); color: var(--brand); }
.tag-pmk { background: rgba(45,45,58,0.1); color: var(--cinder); }
.tag-pdln { background: rgba(45,45,58,0.12); color: var(--cinder); }
.tag-paspor { background: rgba(16,55,80,0.1); color: var(--brand-dark); }
.regulasi-status { display:inline-block; margin:0.4rem 0 0 0.35rem; padding:0.18rem 0.65rem; border-radius:100px; font-size:0.65rem; font-weight:800; letter-spacing:0.04em; text-transform:uppercase; border:1px solid transparent; }
.status-active { background:rgba(28,126,79,0.10); color:#17663f; border-color:rgba(28,126,79,0.20); }
.status-amended { background:rgba(176,116,0,0.10); color:#7a5200; border-color:rgba(176,116,0,0.22); }
.status-archive { background:rgba(100,116,139,0.12); color:#4b5563; border-color:rgba(100,116,139,0.24); }
.status-info { background:rgba(22,75,112,0.08); color:var(--brand-dark); border-color:rgba(22,75,112,0.18); }
.regulasi-status-legend { max-width:900px; margin:1rem auto 1.75rem; display:flex; flex-wrap:wrap; justify-content:center; gap:0.55rem 0.8rem; }
.regulasi-status-legend span { display:inline-flex; align-items:center; gap:0.4rem; padding:0.42rem 0.72rem; border:1px solid var(--border); border-radius:999px; background:var(--card-bg); color:var(--text-muted); font-size:0.72rem; font-weight:700; }
.regulasi-status-legend i { width:8px; height:8px; border-radius:50%; display:inline-block; }
.regulasi-status-legend .legend-active i { background:#1c7e4f; }
.regulasi-status-legend .legend-amended i { background:#b07400; }
.regulasi-status-legend .legend-archive i { background:#64748b; }
.regulasi-status-legend .legend-info i { background:#164b70; }
.regulasi-audit-note { max-width:900px; margin:-0.85rem auto 1.9rem; text-align:center; color:var(--text-muted); font-size:0.74rem; line-height:1.6; }


.faq-list { max-width: 900px; margin: 0 auto; display: flex; flex-direction: column; gap: 1rem; }
.faq-filters { max-width: 900px; margin: 0 auto 1.35rem; display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; }
.faq-filter-btn { border: 1px solid var(--border); background: var(--card-bg); color: var(--text-muted); padding: 0.72rem 1rem; border-radius: 999px; font: inherit; font-size: 0.86rem; font-weight: 700; letter-spacing: 0.01em; cursor: pointer; transition: all 0.22s var(--ease-out); box-shadow: var(--shadow-sm); }
.faq-filter-btn:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); }
.faq-filter-btn.active { background: var(--brand); color: #fff; border-color: var(--brand); box-shadow: var(--shadow-brand); }
.faq-filter-btn.filter-domestic:not(.active) { background: #E8F2F8; color: #164B70; border-color: #B8D4E5; }
.faq-filter-btn.filter-international:not(.active) { background: #FFF3D6; color: #8A5A00; border-color: #E7C46A; }
.faq-item { background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; transition: all 0.3s var(--ease-out); }
.faq-item:hover { box-shadow: var(--shadow-md); }
.faq-item.is-hidden { display: none !important; }
.faq-question { padding: 1.3rem 1.6rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; font-weight: 600; font-size: 0.98rem; transition: all 0.3s; }
.faq-question:hover { color: var(--brand); }
.faq-icon { width: 28px; height: 28px; border-radius: 50%; background: var(--gray-100); display: flex; align-items: center; justify-content: center; font-size: 0.9rem; color: var(--text-muted); transition: all 0.35s var(--ease-out); flex-shrink: 0; }
.faq-item.open .faq-icon { background: var(--brand); color: white; transform: rotate(180deg); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s var(--ease-out); }
.faq-item.open .faq-answer { max-height: 600px; }
.faq-answer-inner { padding: 0 1.6rem 1.5rem; color: var(--text-muted); font-size: 0.92rem; line-height: 1.75; border-top: 1px solid var(--border); padding-top: 1.2rem; }
.faq-answer-inner a { color: var(--brand); font-weight: 600; text-decoration: underline; }
.faq-answer-inner a:hover { color: var(--brand-dark); }
.faq-badge { display: inline-flex; align-items: center; gap: 0.38rem; padding: 0.34rem 0.78rem; border-radius: 999px; font-size: 0.69rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; margin-right: 0.62rem; border: 1px solid transparent; }
.faq-badge::before { content: ''; width: 0.45rem; height: 0.45rem; border-radius: 50%; background: currentColor; opacity: 0.9; }
.badge-dn { background: #E8F2F8; color: #164B70; border-color: #B8D4E5; }
.badge-ln { background: #FFF3D6; color: #8A5A00; border-color: #E7C46A; }
[data-theme="dark"] .badge-dn { background: rgba(40,104,143,.20); color: #A9D4EC; border-color: rgba(169,212,236,.30); }
[data-theme="dark"] .badge-ln { background: rgba(231,196,106,.15); color: #F2D795; border-color: rgba(242,215,149,.28); }
@media (max-width: 600px) {
  .faq-filters { justify-content: stretch; }
  .faq-filter-btn { flex: 1 1 auto; }
}

.bento { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1.25rem; }
.bento-card { background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 2rem; transition: all 0.4s var(--ease-out); position: relative; overflow: hidden; cursor: pointer; }
.bento-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: transparent; }
.bento-card-icon { width: 52px; height: 52px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; margin-bottom: 1.3rem; background: var(--gray-100); transition: all 0.4s var(--ease-out); }
.bento-card:hover .bento-card-icon { background: linear-gradient(135deg, var(--brand), var(--brand-dark)); transform: scale(1.08); box-shadow: var(--shadow-brand); }
.bento-card h3 { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 1.2rem; font-weight: 700; margin-bottom: 0.7rem; letter-spacing: -0.02em; }
.bento-card p { color: var(--text-muted); font-size: 0.9rem; line-height: 1.7; }
.bento-card .bento-meta { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); font-size: 0.78rem; color: var(--text-muted); display: flex; align-items: center; gap: 0.4rem; }
.bento-card .bento-meta strong { color: var(--brand); }
.bento-card .bento-link { display: inline-flex; align-items: center; gap: 0.4rem; margin-top: 0.8rem; font-size: 0.82rem; font-weight: 600; color: var(--brand); transition: gap 0.3s; }
.bento-card:hover .bento-link { gap: 0.7rem; }
.ecosystem-flow{display:grid;grid-template-columns:repeat(6,1fr);gap:.7rem;align-items:stretch;margin:0 0 2rem}
.ecosystem-step{background:linear-gradient(180deg,var(--card-bg),rgba(22,75,112,.035));border:1px solid var(--border);border-radius:18px;padding:1.15rem .8rem;text-align:center;position:relative;cursor:pointer;transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out),border-color .3s ease;overflow:visible}
.ecosystem-step::before{content:'';position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--brand),var(--gold))}
.ecosystem-step:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:rgba(181,139,66,.48)}
.ecosystem-step:focus-visible{outline:3px solid rgba(181,139,66,.30);outline-offset:3px}
.ecosystem-step-icon{width:42px;height:42px;margin:0 auto .65rem;border-radius:12px;background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.9rem;box-shadow:0 7px 18px rgba(22,75,112,.18)}
.ecosystem-step-hint{display:block;margin-top:.55rem;font-size:.67rem;font-weight:700;color:var(--brand);opacity:.82}
.ecosystem-step:not(:last-child)::after{content:'→';position:absolute;right:-.62rem;top:50%;transform:translate(50%,-50%);z-index:4;color:var(--brand);font-size:1.08rem;font-weight:800;line-height:1;opacity:.92;pointer-events:none;text-shadow:0 1px 0 var(--card-bg);transition:transform .22s ease,opacity .22s ease,color .22s ease,text-shadow .22s ease}
.ecosystem-step-num{display:block;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brand);margin-bottom:.3rem}
.ecosystem-step strong{display:block;font-size:.82rem;line-height:1.35}
.ecosystem-note{max-width:900px;margin:-.5rem auto 1.6rem;text-align:center;color:var(--text-muted);font-size:.88rem;line-height:1.65}
.ecosystem-card-stage{display:inline-flex;align-items:center;padding:.28rem .65rem;border-radius:999px;background:rgba(22,75,112,.08);color:var(--brand);font-size:.67rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;margin-bottom:.8rem}
.digital-history-title,.ecosystem-reference-title{grid-column:1/-1;margin-top:.8rem;padding-top:1.4rem;border-top:1px solid var(--border);font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.digital-history-card{grid-column:span 6;background:linear-gradient(135deg,rgba(22,75,112,.06),rgba(181,139,66,.07));border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;display:flex;gap:1rem;align-items:flex-start;text-decoration:none;color:inherit;transition:all .3s var(--ease-out)}
.digital-history-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:rgba(181,139,66,.45)}
.digital-history-icon{width:58px;height:58px;flex:0 0 58px;display:flex;align-items:center;justify-content:center}
.digital-history-icon img{width:100%;height:100%;object-fit:contain}
.digital-history-card h3{font-size:1rem;margin:.1rem 0 .35rem}
.digital-history-card p{font-size:.86rem;margin:0;color:var(--text-muted);line-height:1.6}
.digital-history-date{display:inline-block;margin-top:.6rem;font-size:.72rem;font-weight:800;color:var(--brand);letter-spacing:.03em}
@media(max-width:700px){.digital-history-card{grid-column:1/-1}}
@media(max-width:900px){.ecosystem-flow{grid-template-columns:repeat(3,1fr)}.ecosystem-step:nth-child(3)::after,.ecosystem-step:nth-child(6)::after{display:none}}
@media(max-width:600px){.ecosystem-flow{grid-template-columns:1fr}.ecosystem-step::after{content:'↓'!important;right:auto!important;left:50%!important;top:auto!important;bottom:-.72rem!important;transform:translateX(-50%)!important}.ecosystem-step:last-child::after{display:none}}
.bento-wide { grid-column: span 7; } .bento-narrow { grid-column: span 5; }
.bento-third { grid-column: span 4; } .bento-half { grid-column: span 6; }
.bento-accent { background: linear-gradient(135deg, var(--cinder-dark) 0%, var(--cinder) 100%); color: white; border: none; }
.bento-accent .bento-card-icon { background: rgba(255,255,255,0.1); }
.bento-accent p { color: rgba(255,255,255,0.8); }
.bento-accent::after { content: ''; position: absolute; top: -40%; right: -15%; width: 300px; height: 300px; border-radius: 50%; background: radial-gradient(circle, rgba(22,75,112,0.3), transparent 70%); pointer-events: none; }
.bento-accent .bento-meta { border-top-color: rgba(255,255,255,0.1); color: rgba(255,255,255,0.5); }
.bento-accent .bento-meta strong { color: var(--brand-light); }
.bento-accent .bento-link { color: var(--brand-light); }
.bento-accent h3 { color: white; }

.modal-overlay { position: fixed; inset: 0; z-index: 9500; background: rgba(14,14,24,0.75); backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: center; padding: 2rem; opacity: 0; visibility: hidden; transition: all 0.35s var(--ease-out); }
.modal-overlay.open { opacity: 1; visibility: visible; }
.modal-box { background: var(--card-bg); border-radius: var(--radius-lg); max-width: 640px; width: 100%; max-height: 85vh; overflow-y: auto; padding: 2.5rem; position: relative; transform: translateY(20px) scale(0.97); transition: all 0.35s var(--ease-out); box-shadow: var(--shadow-xl); }
.modal-overlay.open .modal-box { transform: translateY(0) scale(1); }
.modal-close { position: absolute; top: 1rem; right: 1rem; width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; color: var(--text-muted); background: var(--gray-100); transition: all 0.25s; }
.modal-close:hover { background: var(--brand); color: white; }
.modal-icon { font-size: 2.5rem; margin-bottom: 1rem; }
.modal-box h3 { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 1.4rem; font-weight: 700; margin-bottom: 0.8rem; }
.modal-box p { color: var(--text-muted); font-size: 0.95rem; line-height: 1.75; margin-bottom: 1rem; }
.modal-tag { display: inline-block; padding: 0.25rem 0.75rem; border-radius: 100px; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; background: rgba(22,75,112,0.1); color: var(--brand); margin-bottom: 1rem; }
.modal-actions { display: flex; gap: 0.75rem; margin-top: 1.5rem; flex-wrap: wrap; }
.modal-actions .btn { padding: 0.7rem 1.4rem; font-size: 0.85rem; }
.btn-outline { background: transparent; color: var(--brand); border: 1.5px solid var(--brand); }
.btn-outline:hover { background: var(--brand); color: white; }

.footer { background: linear-gradient(135deg, var(--cinder-deep) 0%, var(--cinder-dark) 50%, var(--cinder) 100%); color: rgba(255,255,255,0.7); padding: 5rem 2rem 2rem; position: relative; overflow: hidden; }
.footer::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 1px; background: linear-gradient(90deg, transparent, var(--brand), var(--brand-light), transparent); }
.footer-inner { max-width: var(--container); margin: 0 auto; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3rem; margin-bottom: 3rem; }
.footer-brand { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 1.25rem; font-weight: 700; color: white; margin-bottom: 1rem; display: flex; align-items: center; gap: 0.6rem; }
.footer-brand-icon { width: 36px; height: 36px; border-radius: 9px; background: linear-gradient(135deg, var(--brand), var(--brand-dark)); display: flex; align-items: center; justify-content: center; font-size: 1.05rem; }
.footer-desc { font-size: 0.88rem; line-height: 1.75; color: rgba(255,255,255,0.5); max-width: 340px; }
.footer h4 { color: white; font-size: 0.82rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 1.3rem; }
.footer-links { list-style: none; }
.footer-links li { margin-bottom: 0.7rem; }
.footer-links a { font-size: 0.88rem; color: rgba(255,255,255,0.5); transition: all 0.3s; display: inline-block; }
.footer-links a:hover { color: var(--brand-light); transform: translateX(4px); }
.footer-bottom { padding-top: 2rem; border-top: 1px solid rgba(255,255,255,0.08); display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; font-size: 0.8rem; color: rgba(255,255,255,0.35); }

.reveal { opacity: 0; transform: translateY(32px); transition: opacity 0.8s var(--ease-out), transform 0.8s var(--ease-out); }
.reveal.active { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }

@media (max-width: 1024px) {
  .hero-inner { grid-template-columns: 1fr; gap: 3rem; }
  .hero-stats { flex-direction: row; flex-wrap: wrap; }
  .hero-stat { min-width: 150px; flex: 1; }
  .bento-wide, .bento-narrow, .bento-third, .bento-half { grid-column: span 12; }
  .struktur-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .nav-hamburger { display: flex; }
  .nav-links { position: fixed; top: 0; right: -100%; width: 85%; max-width: 360px; height: 100vh; background: var(--card-bg); flex-direction: column; align-items: flex-start; padding: 6rem 2rem 2rem; gap: 0.5rem; box-shadow: -12px 0 48px rgba(0,0,0,0.15); transition: right 0.45s var(--ease-out); z-index: 8999; overflow-y: auto; }
  .nav-links.open { right: 0; }
  .nav-links a { width: 100%; padding: 0.9rem 1rem; font-size: 1rem; }
  .nav-links a.active::after { display: none; }
  .nav-links a.active { background: rgba(22,75,112,0.08); border-left: 3px solid var(--brand); }
  .nav-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.4); backdrop-filter: blur(4px); opacity: 0; visibility: hidden; transition: all 0.4s; z-index: 8998; }
  .nav-overlay.open { opacity: 1; visibility: visible; }
}
@media (max-width: 768px) {
  .section { padding: 5rem 1.4rem; }
  .hero { padding: 7rem 1.4rem 4rem; }
  .hero-scroll { display: none; }
  .hero-stat { min-width: 100%; }
  .struktur-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .footer-bottom { flex-direction: column; text-align: center; }
  .regulasi-item { flex-direction: column; gap: 0.5rem; }
  .regulasi-num { width: auto; }
  .hero-bg::after {
    background: linear-gradient(to top,
      rgba(255,255,255,0.98) 0%,
      rgba(255,255,255,0.92) 25%,
      rgba(255,255,255,0.7) 50%,
      rgba(255,255,255,0.3) 80%,
      rgba(255,255,255,0.1) 100%);
  }
}
@media (max-width: 480px) {
  .nav-inner { padding: 0.9rem 1rem; }
  .nav-brand-text { display: none; }
  .hero h1 { font-size: 1.8rem; }
  .section-title { font-size: 1.5rem; }
}

/* Palette: navy / muted gold / white. Gold is an accent, not body text. */
:root { --gold:#B58B42; --gold-light:#E9CB8D; --text-muted:#536579; }
body,.section,.hero { background:var(--bg); }
.section-alt { background:var(--bg-alt); }
.nav::before { opacity:1; }
.hero { border-bottom:3px solid var(--gold); }
.hero h1,.hero-stat-value { color:var(--text); }
.hero-desc { color:var(--text-muted); }
.hero-stat { background:var(--card-bg); }
.hero-eyebrow { background:var(--card-bg); color:var(--brand); }
.bento-accent .bento-link,.bento-accent .bento-meta strong,.bento-accent .bento-meta,.footer-desc,.footer-links a,.footer-bottom,.loader-tagline { color:#C3CFDD; }
.footer-links a:hover { color:var(--gold-light); }
.footer::before { background:var(--gold); height:3px; }
.nav-brand-emblem { border:1px solid var(--gold); }
:focus-visible { outline:3px solid var(--gold); outline-offset:5px; }
section[id] { scroll-margin-top:90px; }
.skip-link { position:fixed; top:-80px; left:16px; z-index:100000; background:var(--card-bg); padding:12px 20px; }
.skip-link:focus { top:12px; }
a.bento-card { display:block; }
.faq-question { width:100%; text-align:left; color:var(--text); line-height:1.6; }
.faq-item.open .faq-answer { max-height:none; }
.modal-box { overscroll-behavior:contain; }
.nav-hamburger { position:relative; z-index:9001; }
[data-theme="dark"] { --bg:#0C1928; --bg-alt:#112236; --card-bg:#172C42; --text:#EEF3F8; --text-muted:#B9C9D9; --border:#38516A; --brand:#9BCBF0; --brand-dark:#B7DFFF; --gray-600:#B9C9D9; --gray-700:#B9C9D9; }
[data-theme="dark"] .nav::before { background:rgba(12,25,40,.97); }
[data-theme="dark"] .hero-bg::after { background:linear-gradient(to top,#0C1928 0%,rgba(12,25,40,.9) 35%,rgba(12,25,40,.5) 100%); }
[data-theme="dark"] .btn-primary,[data-theme="dark"] .btn-outline:hover,[data-theme="dark"] .faq-item.open .faq-icon { color:#0C1928; }
[data-theme="dark"] .tag-pmk,[data-theme="dark"] .tag-pdln { color:var(--text); }
[data-theme="dark"] .hero-stat:hover { background:var(--card-bg); }
@media(max-width:480px) { .modal-overlay { padding:1rem; } .modal-box { padding:2.8rem 1.3rem 1.5rem; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } .reveal { opacity:1; transform:none; } }

/* Institutional vector icons: self-contained, consistent 24-unit grid. */
.ui-icon { width:1.15em; height:1.15em; display:inline-block; vertical-align:-.18em; flex-shrink:0; pointer-events:none; }
.icon-accent { stroke:var(--gold); }
.struktur-icon,.bento-card-icon,.modal-icon { color:#164B70; background:linear-gradient(145deg,#F6F9FC,#E5EDF5); border:1px solid #CEDBE7; box-shadow:inset 0 1px 0 #fff,0 5px 14px rgba(20,45,69,.05); }
.struktur-icon { width:72px; height:72px; border-radius:18px; }
.struktur-icon .ui-icon { width:36px; height:36px; }
.bento-card-icon { width:60px; height:60px; border-radius:15px; }
.bento-card-icon .ui-icon { width:30px; height:30px; }
.modal-icon { display:flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:16px; }
.modal-icon .ui-icon { width:32px; height:32px; }
.nav-brand-emblem,.footer-brand-icon { background:#142D45; color:#E9CB8D; border:1px solid #B58B42; }
.nav-brand-emblem .ui-icon,.footer-brand-icon .ui-icon { width:25px; height:25px; }
.cat-icon .ui-icon { width:23px; height:23px; }
.cat-icon { background:#142D45!important; border:1px solid rgba(181,139,66,.65); }
.struktur-card:hover .struktur-icon,.bento-card:hover .bento-card-icon,.bento-accent .bento-card-icon { background:#142D45; border-color:#B58B42; color:#F2F6FA; transform:translateY(-2px); }
.bento-accent .bento-card-icon { box-shadow:none; }
.struktur-card:hover .icon-accent,.bento-card:hover .icon-accent,.bento-accent .icon-accent { stroke:#E9CB8D; }
.nav-btn .ui-icon { width:20px; height:20px; }
.faq-icon .ui-icon,.modal-close .ui-icon { width:17px; height:17px; }
.bento-link .ui-icon,.struktur-link .ui-icon,.btn .ui-icon { width:16px; height:16px; }
[data-theme="dark"] .struktur-icon,[data-theme="dark"] .bento-card-icon,[data-theme="dark"] .modal-icon { background:#203B54; border-color:#4C6276; color:#D6E7F5; box-shadow:inset 0 1px 0 rgba(255,255,255,.06); }
[data-theme="dark"] .icon-accent { stroke:#E9CB8D; }

.regulasi-source{display:block;font-size:.78rem;color:var(--brand);font-weight:600;margin-top:.6rem}.faq-sources{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:1rem}.faq-sources a{text-decoration:underline;text-underline-offset:3px}a.regulasi-item:focus-visible{outline:3px solid var(--gold);outline-offset:4px}

.lang-switch-static{position:relative;z-index:20;pointer-events:auto;display:flex;align-items:center;height:40px;border:1px solid var(--border);border-radius:20px;overflow:hidden;font-size:.76rem;font-weight:700;letter-spacing:.03em}
.lang-switch-static a,.lang-switch-static span{display:flex;align-items:center;justify-content:center;height:100%;min-width:38px;padding:0 .7rem}
.lang-switch-static button{border:0;background:transparent;font:inherit;cursor:pointer;color:var(--text-muted);transition:all .2s var(--ease-out);height:100%;min-width:38px;padding:0 .7rem}.lang-switch-static button:hover{color:var(--brand);background:rgba(22,75,112,.06)}
.lang-switch-static a{color:var(--text-muted);transition:all .2s var(--ease-out)}
.lang-switch-static a:hover{color:var(--brand);background:rgba(22,75,112,.06)}
.lang-switch-static .active{background:var(--brand);color:#fff}

.pandora-logo-wrap{background:transparent!important;border-radius:0!important;padding:0;overflow:visible}
.app-logo-wrap{background:transparent!important;border-radius:0!important;padding:0;overflow:visible}
.app-logo-wrap .app-logo-img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.bento-card-icon.app-logo-wrap{width:64px;height:64px;margin-bottom:1rem}
.bento-card:hover .bento-card-icon.app-logo-wrap{background:transparent!important;box-shadow:none!important;transform:scale(1.05)}
.modal-icon.app-logo-wrap{width:84px;height:84px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center}
.institutional-logo-wrap{background:transparent!important;border-radius:0!important;padding:0;overflow:visible}
.institutional-logo-wrap .institutional-logo-img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.bento-card-icon.institutional-logo-wrap{width:64px;height:64px;margin-bottom:1rem}
.bento-card:hover .bento-card-icon.institutional-logo-wrap{background:transparent!important;box-shadow:none!important;transform:scale(1.05)}
.bento-card-icon.dpr-official-logo{width:68px;height:68px}
.innovation-logo-wrap{background:transparent!important;border-radius:0!important;padding:0;overflow:visible}
.innovation-logo-wrap .innovation-logo-img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.bento-card-icon.innovation-logo-wrap{width:72px;height:72px;margin-bottom:1rem}
.bento-card:hover .bento-card-icon.innovation-logo-wrap{background:transparent!important;box-shadow:none!important;transform:scale(1.05)}
.modal-icon.innovation-logo-wrap{width:88px;height:88px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center}
.pandora-logo-wrap .pandora-logo-img,.pandora-logo-wrap .pandora-logo-mark{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.bento-card-icon.pandora-logo-wrap{width:64px;height:64px;margin-bottom:1rem}
.bento-card:hover .bento-card-icon.pandora-logo-wrap{background:transparent!important;box-shadow:none!important;transform:scale(1.05)}
.modal-icon.pandora-logo-wrap{width:84px;height:84px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center}

/* Responsive audit 2026-09-26 */
@media (max-width: 900px) {
  .nav-inner { gap: .75rem; }
  .nav-actions { gap: .35rem; }
  .lang-switch-static { flex-shrink: 0; }
  .hero-inner { min-width: 0; }
  .hero-content, .hero-stats { min-width: 0; }
  .section-inner { min-width: 0; }
  .bento, .struktur-grid, .ecosystem-flow { min-width: 0; }
}
@media (max-width: 768px) {
  .section { padding: 4.25rem 1.15rem; }
  .hero { padding: 6.5rem 1.15rem 3.5rem; }
  .hero-actions { flex-wrap: wrap; }
  .hero-actions .btn { width: 100%; justify-content: center; }
  .struktur-card, .bento-card { padding: 1.45rem; }
  .regulasi-item { padding: 1.25rem; }
  .regulasi-content { min-width: 0; width: 100%; }
  .regulasi-content h4, .regulasi-content p, .regulasi-source { overflow-wrap: anywhere; }
  .regulasi-tag, .regulasi-status { max-width: 100%; white-space: normal; line-height: 1.35; }
  .faq-question { padding: 1.1rem 1.15rem; align-items: flex-start; }
  .faq-answer-inner { padding: 0 1.15rem 1.2rem; }
  .digital-history-card { padding: 1.25rem; }
  .footer { padding: 4rem 1.15rem 1.5rem; }
  .footer-bottom { gap: .55rem; }
  .modal-overlay { padding: 1rem; align-items: flex-start; overflow-y: auto; }
  .modal-box { max-height: calc(100dvh - 2rem); margin: auto 0; }
}
@media (max-width: 600px) {
  .nav-links { width: min(88vw, 340px); padding: 5.5rem 1.15rem 1.5rem; }
  .nav-links a { padding: .9rem .85rem; }
  .ecosystem-flow { gap: 1rem; }
  .ecosystem-step { padding: 1rem; }
  .digital-history-card { flex-direction: column; }
  .digital-history-icon { width: 52px; height: 52px; flex-basis: 52px; }
  .regulasi-status-legend { justify-content: flex-start; }
  .faq-filter-btn { min-height: 44px; }
}
@media (max-width: 480px) {
  .nav-inner { padding: .75rem .85rem; }
  .nav-btn { width: 38px; height: 38px; }
  .nav-hamburger { min-width: 38px; min-height: 38px; }
  .hero { padding-left: .9rem; padding-right: .9rem; }
  .section { padding-left: .9rem; padding-right: .9rem; }
  .hero h1 { font-size: clamp(1.75rem, 8vw, 2.15rem); line-height: 1.14; }
  .hero-desc { font-size: .94rem; }
  .hero-stat { padding: 1rem; }
  .section-title { line-height: 1.2; }
  .struktur-card, .bento-card, .digital-history-card, .regulasi-item { border-radius: 18px; }
  .modal-overlay { padding: .55rem; }
  .modal-box { border-radius: 18px; padding: 2.8rem 1rem 1.25rem; max-height: calc(100dvh - 1.1rem); }
  .modal-actions { flex-direction: column; }
  .modal-actions .btn { width: 100%; justify-content: center; }
  .footer { padding-left: .9rem; padding-right: .9rem; }
}

/* Performance audit 2026-09-26 */
section.section { content-visibility: auto; contain-intrinsic-size: 900px; }
#home { content-visibility: visible; }



.reveal{opacity:1;transform:none}

/* Digital timeline refinement 2026-09-26 */
.ecosystem-card-stage { white-space: normal; line-height: 1.35; }
.digital-timeline {
  grid-column: 1 / -1;
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  padding-left: 1.6rem;
}
.digital-timeline::before {
  content: "";
  position: absolute;
  left: .36rem;
  top: .85rem;
  bottom: .85rem;
  width: 2px;
  background: linear-gradient(180deg, var(--brand), var(--gold));
  opacity: .45;
}
.digital-timeline .digital-history-card {
  grid-column: auto;
  position: relative;
}
.digital-timeline .digital-history-card::before {
  content: "";
  position: absolute;
  left: -1.58rem;
  top: 1.55rem;
  width: .72rem;
  height: .72rem;
  border-radius: 50%;
  background: var(--card-bg);
  border: 3px solid var(--gold);
  box-shadow: 0 0 0 4px var(--bg-alt);
}
@media (max-width: 600px) {
  .digital-timeline { padding-left: 1.25rem; }
  .digital-timeline::before { left: .24rem; }
  .digital-timeline .digital-history-card::before { left: -1.28rem; top: 1.25rem; }
}


/* Ecosystem lifecycle status 2026-09-26 */
.ecosystem-card-status{
  position:absolute;
  top:1.15rem;
  right:1.15rem;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:.42rem;
  width:max-content;
  max-width:calc(100% - 6rem);
  margin:0;
  min-height:28px;
  padding:.28rem .68rem;
  border-radius:999px;
  border:1px solid transparent;
  font-size:.64rem;
  font-weight:800;
  letter-spacing:.055em;
  text-transform:uppercase;
  line-height:1.2;
  white-space:normal;
  box-shadow:0 3px 10px rgba(15,35,55,.06);
}
.ecosystem-card-status .status-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  flex:0 0 7px;
  background:currentColor;
}
.ecosystem-card-status.status-active{
  background:rgba(28,126,79,.10);
  color:#17663f;
  border-color:rgba(28,126,79,.22);
}
.ecosystem-card-status.status-internal{
  background:rgba(22,75,112,.08);
  color:#164B70;
  border-color:rgba(22,75,112,.18);
}
.ecosystem-card-status.status-development{
  background:rgba(176,116,0,.10);
  color:#7A5200;
  border-color:rgba(176,116,0,.22);
}
.ecosystem-card-status.status-uat{
  background:rgba(110,76,170,.10);
  color:#6542A5;
  border-color:rgba(110,76,170,.22);
}
[data-theme="dark"] .ecosystem-card-status.status-active{color:#7ED7A7;background:rgba(76,175,120,.14);border-color:rgba(126,215,167,.25)}
[data-theme="dark"] .ecosystem-card-status.status-internal{color:#9BCBF0;background:rgba(155,203,240,.10);border-color:rgba(155,203,240,.22)}
[data-theme="dark"] .ecosystem-card-status.status-development{color:#E9CB8D;background:rgba(233,203,141,.10);border-color:rgba(233,203,141,.22)}
[data-theme="dark"] .ecosystem-card-status.status-uat{color:#C5A8FF;background:rgba(197,168,255,.10);border-color:rgba(197,168,255,.22)}
@media(max-width:600px){
  .ecosystem-card-status{
    top:.9rem;
    right:.9rem;
    max-width:calc(100% - 5.5rem);
    font-size:.61rem;
    padding:.26rem .58rem;
  }
}


/* Subtle active-status pulse 2026-09-26 */
@keyframes ecosystemActivePulse{
  0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(23,102,63,.18)}
  50%{transform:scale(1.14);box-shadow:0 0 0 4px rgba(23,102,63,0)}
}
.ecosystem-card-status.status-active .status-dot{
  animation:ecosystemActivePulse 2.6s ease-in-out infinite;
  transform-origin:center;
}


/* Development status hover glow 2026-09-26 */
.ecosystem-card-status.status-development{
  transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease, background-color .25s ease;
}
.ecosystem-card-status.status-development:hover,
.bento-card:hover .ecosystem-card-status.status-development{
  box-shadow:
    0 0 0 3px rgba(176,116,0,.05),
    0 4px 14px rgba(176,116,0,.14);
  border-color:rgba(176,116,0,.32);
  background:rgba(176,116,0,.12);
  transform:translateY(-1px);
}
[data-theme="dark"] .ecosystem-card-status.status-development:hover,
[data-theme="dark"] .bento-card:hover .ecosystem-card-status.status-development{
  box-shadow:
    0 0 0 3px rgba(233,203,141,.05),
    0 4px 14px rgba(233,203,141,.12);
  border-color:rgba(233,203,141,.30);
  background:rgba(233,203,141,.12);
}
@media (prefers-reduced-motion: reduce){
  .ecosystem-card-status.status-development{transition:none}
  .ecosystem-card-status.status-development:hover,
  .bento-card:hover .ecosystem-card-status.status-development{transform:none}
}

/* Ecosystem flow arrow refinement 2026-09-26 */
.ecosystem-step:hover:not(:last-child)::after,
.ecosystem-step:focus-visible:not(:last-child)::after{
  color:var(--gold);
  opacity:1;
  transform:translate(calc(50% + 3px),-50%);
  text-shadow:0 1px 0 var(--card-bg),0 0 8px rgba(181,139,66,.12);
}
[data-theme="dark"] .ecosystem-step:not(:last-child)::after{
  color:var(--gold-light);
  opacity:.94;
}
[data-theme="dark"] .ecosystem-step:hover:not(:last-child)::after,
[data-theme="dark"] .ecosystem-step:focus-visible:not(:last-child)::after{
  color:#F1D9A7;
  text-shadow:0 1px 0 var(--card-bg),0 0 9px rgba(233,203,141,.16);
}
@media (prefers-reduced-motion: reduce){
  .ecosystem-step:not(:last-child)::after{transition:none}
  .ecosystem-step:hover:not(:last-child)::after,
  .ecosystem-step:focus-visible:not(:last-child)::after{
    transform:translate(50%,-50%);
  }
}


/* Dark-mode stage number contrast 2026-09-26 */
[data-theme="dark"] .ecosystem-step-icon{
  background:linear-gradient(135deg,#B9E0FA,#8FC7EC);
  color:#0C2740;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 7px 18px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.35);
  text-shadow:none;
}
[data-theme="dark"] .ecosystem-step:hover .ecosystem-step-icon,
[data-theme="dark"] .ecosystem-step:focus-visible .ecosystem-step-icon{
  background:linear-gradient(135deg,#C8E8FC,#9ED2F2);
  color:#08233A;
  box-shadow:0 9px 22px rgba(0,0,0,.25),0 0 0 3px rgba(155,203,240,.08);
}


/* FAQ interaction refinement 2026-09-26 */
.faq-item{
  position:relative;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    border-color .22s ease,
    background-color .22s ease;
}
.faq-item::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:linear-gradient(180deg,var(--brand),var(--gold));
  transform:scaleY(0);
  transform-origin:center;
  transition:transform .24s ease;
  pointer-events:none;
}
.faq-item:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(20,45,69,.10);
  border-color:rgba(22,75,112,.24);
}
.faq-item:hover::before{
  transform:scaleY(.58);
}
.faq-item:hover .faq-question{
  color:var(--brand-dark);
}
.faq-item:hover .faq-icon{
  transform:scale(1.06);
  border-color:rgba(181,139,66,.35);
}
.faq-item.open{
  border-color:rgba(22,75,112,.30);
  box-shadow:0 10px 26px rgba(20,45,69,.10);
}
.faq-item.open::before{
  transform:scaleY(1);
}
.faq-item.open .faq-question{
  color:var(--brand-dark);
}
.faq-icon{
  border:1px solid transparent;
  transition:
    transform .24s ease,
    background-color .24s ease,
    color .24s ease,
    border-color .24s ease,
    box-shadow .24s ease;
}
.faq-item.open .faq-icon{
  box-shadow:0 4px 12px rgba(22,75,112,.14);
}
[data-theme="dark"] .faq-item:hover{
  border-color:rgba(155,203,240,.28);
  box-shadow:0 8px 22px rgba(0,0,0,.20);
}
[data-theme="dark"] .faq-item.open{
  border-color:rgba(155,203,240,.34);
  box-shadow:0 10px 26px rgba(0,0,0,.22);
}
[data-theme="dark"] .faq-item:hover .faq-question,
[data-theme="dark"] .faq-item.open .faq-question{
  color:var(--brand);
}
@media (prefers-reduced-motion: reduce){
  .faq-item,
  .faq-item::before,
  .faq-icon{
    transition:none;
  }
  .faq-item:hover{
    transform:none;
  }
  .faq-item:hover .faq-icon{
    transform:none;
  }
}


/* Footer disclaimer cleanup 2026-09-26 */
.footer-disclaimer{
  margin:0 0 1.25rem;
  padding:1rem 1.2rem;
  border:1px solid rgba(255,255,255,.15);
  border-radius:12px;
  font-size:.78rem;
  line-height:1.6;
  color:rgba(255,255,255,.55);
}
.footer-disclaimer strong{color:rgba(255,255,255,.8)}


/* External asset resilience 2026-09-26 */
.external-image-missing{
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(145deg,#F6F9FC,#E5EDF5)!important;
  border:1px solid #CEDBE7!important;
}
.external-image-missing::after{
  content:"DPR RI";
  color:var(--brand);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.05em;
}
[data-theme="dark"] .external-image-missing{
  background:#203B54!important;
  border-color:#4C6276!important;
}
[data-theme="dark"] .external-image-missing::after{color:#D6E7F5}
.footer-photo-credit{
  margin:-.35rem 0 1rem;
  color:rgba(255,255,255,.45);
  font-size:.69rem;
  line-height:1.5;
}


/* Organizational tree connectors 2026-09-26 */
.struktur-grid{
  position:relative;
}
@media (min-width:1025px){
  .struktur-grid::before{
    content:"";
    position:absolute;
    top:-1.2rem;
    left:calc((100% - 3rem) / 6);
    right:calc((100% - 3rem) / 6);
    height:1px;
    background:linear-gradient(
      90deg,
      rgba(22,75,112,.28),
      rgba(181,139,66,.48) 50%,
      rgba(22,75,112,.28)
    );
    pointer-events:none;
    z-index:0;
  }
  .struktur-card{
    overflow:visible;
  }
  .struktur-card::after{
    content:"";
    position:absolute;
    left:50%;
    top:-1.2rem;
    width:1px;
    height:1.2rem;
    background:rgba(22,75,112,.26);
    pointer-events:none;
    z-index:-1;
  }
  [data-theme="dark"] .struktur-grid::before{
    background:linear-gradient(
      90deg,
      rgba(155,203,240,.32),
      rgba(233,203,141,.52) 50%,
      rgba(155,203,240,.32)
    );
  }
  [data-theme="dark"] .struktur-card::after{
    background:rgba(155,203,240,.34);
  }
}
@media (max-width:1024px){
  .struktur-leader::after{
    bottom:-2.4rem;
    height:2.4rem;
  }
}
