/* ATRI AOS v2 — Public institutional website surface.
   Design system: deep navy + gold, Fraunces (display) + Inter (text).
   Scoped to public pages only (loaded after foundation.css, which the console
   and member surfaces use unchanged). */

/* ---- Self-hosted variable fonts ---- */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;
  src:url(/static/fonts/inter.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:500 700;font-display:swap;
  src:url(/static/fonts/fraunces.woff2) format('woff2')}

/* ---- Public design tokens (override foundation on public pages only) ---- */
:root{
  --navy:#111731; --navy2:#1a2246; --navy3:#232c54; --navy-deep:#0c1024;
  --black:#111731;                 /* retheme every "black" public surface to navy */
  --slate:#1b2340;                 /* dark text / slate sections */
  --gold:#C9A227; --gold-lt:#E4C767; --gold-on-light:#7A6119;
  --ink:#141a30; --grey:#5f6980; --muted:#5f6980;
  --paper:#FBFAF5; --cream:#F7F4EC; --near-white:#FCFAF4;
  --rule:#EAE5D8; --border-light:#E4DECF;
  --divider-black:#26305c; --border-black:#2c366a;
  --muted-on-black:#9aa3c4; --muted-on-black-2:#c4cbe4;
  --ui:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --serif:'Inter',system-ui,sans-serif;      /* public body = Inter */
  --display:'Fraunces',Georgia,'Times New Roman',serif;
  /* Structural tokens (theme-varying) — defaults = Navy & Gold */
  --r-card:16px; --r-card-sm:14px; --r-btn:9px; --r-chip:20px; --r-visual:18px;
  --hero-bg:linear-gradient(160deg,#0f142b 0%,#161d3d 55%,#1d2650 100%);
  --section-dark-bg:var(--navy);
  --masthead-bg:var(--navy);
}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}
::selection{background:var(--gold);color:var(--navy)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}

/* ---- Reveal-on-scroll (added by base_public.html; degrades gracefully) ---- */
body.reveal-ready main>.section,body.reveal-ready main>.hero{opacity:0;transform:translateY(20px);
  transition:opacity .7s ease,transform .7s ease}
body.reveal-ready main>.section.in,body.reveal-ready main>.hero.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body.reveal-ready main>.section,body.reveal-ready main>.hero{opacity:1;transform:none;transition:none}
}


/* ---- Utility bar (rc78 — purposeful: contact left, language right) ---- */
.utilbar{background:var(--navy-deep);color:var(--muted-on-black-2);border-bottom:1px solid rgba(255,255,255,.05)}
.utilbar .inner{display:flex;align-items:center;justify-content:space-between;height:38px}
.utilbar a,.utilbar button{display:inline-flex;align-items:center;gap:7px;font:12px var(--ui);letter-spacing:.03em;color:var(--muted-on-black-2);
  background:none;border:0;cursor:pointer;transition:color .18s}
.utilbar a:hover,.utilbar button:hover{color:var(--gold-lt)}
.utilbar .left{display:flex;gap:22px}
.utilbar .right{display:flex;align-items:center;gap:16px}
.ui-ic{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;flex:0 0 auto;opacity:.85}
.lang{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px;font:600 12px var(--ui);letter-spacing:.06em}
.lang .ui-ic{opacity:.7}

/* ---- Masthead: logo · nav · CTA (rc78) ---- */
.masthead{background:var(--masthead-bg);color:#fff;position:sticky;top:0;z-index:40;
  border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 10px 30px -24px rgba(0,0,0,.75)}
.masthead .inner{display:flex;align-items:center;gap:24px;padding:15px var(--pad);max-width:1600px}
.brand{display:flex;align-items:center;gap:13px;flex:0 0 auto}
.brand img{width:48px;height:48px}
.brand .wm{display:flex;flex-direction:column;line-height:1.1;border-left:1px solid rgba(255,255,255,.16);padding-left:14px}
.brand .wm b{font:700 20px var(--ui);letter-spacing:.02em}
.brand .wm span{font:9.5px var(--ui);letter-spacing:.14em;color:var(--muted-on-black);margin-top:4px}
.mainnav{display:flex;flex:1 1 auto;flex-wrap:nowrap;align-items:center;justify-content:center;gap:4px 22px;min-width:0}
.mainnav a{font:500 14px var(--ui);color:#cfd5e8;position:relative;padding:7px 2px;transition:color .18s;white-space:nowrap}
.mainnav a::after{content:"";position:absolute;left:50%;right:50%;bottom:-1px;height:2px;background:var(--gold);transition:left .22s,right .22s;border-radius:2px}
.mainnav a:hover{color:#fff}
.mainnav a:hover::after,.mainnav a.active::after{left:0;right:0}
.mainnav a.active{color:#fff}
.mast-cta{display:flex;align-items:center;gap:12px;flex:0 0 auto;margin-left:auto}
.btn-masuk{background:var(--gold)!important;color:var(--navy)!important;font:700 13.5px var(--ui);letter-spacing:.01em;
  padding:9px 18px;border-radius:8px;transition:transform .15s,box-shadow .2s;white-space:nowrap}
.btn-masuk:hover{transform:translateY(-1px);box-shadow:0 10px 22px -10px rgba(201,162,39,.75)}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:6px}
.mt-bars{display:flex;flex-direction:column;justify-content:center;gap:4px;width:24px;height:18px}
.mt-bars i{display:block;height:2px;background:#fff;border-radius:2px;transition:transform .2s,opacity .2s}
.masthead.open .mt-bars i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.masthead.open .mt-bars i:nth-child(2){opacity:0}
.masthead.open .mt-bars i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ---- Hero ---- */
.hero{background:var(--hero-bg);color:#fff;
  position:relative;overflow:hidden;padding:clamp(52px,6vw,92px) 0 clamp(40px,5vw,64px)}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(620px 320px at 85% 12%,rgba(201,162,39,.16),transparent 60%),
             radial-gradient(520px 420px at 8% 92%,rgba(80,110,220,.16),transparent 60%)}
.hero .container{position:relative}
.hero .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,56px);align-items:center}
.hero h1{font:600 clamp(38px,5.2vw,62px)/1.05 var(--display);letter-spacing:-.01em;margin:20px 0}
.hero h1 em{font-style:italic;color:var(--gold-lt)}
.hero .lead{font:clamp(17px,1.4vw,19px)/1.7 var(--ui);color:#c4cbe4;max-width:540px}
.hero .actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.hero .trust{margin-top:34px;display:flex;gap:22px;align-items:center;color:var(--muted-on-black);font:12.5px var(--ui);flex-wrap:wrap}
.hero .trust .dot{width:6px;height:6px;border-radius:50%;background:var(--gold);display:inline-block}

/* Hero visual card + floating chips */
.hero-photo{border-radius:var(--r-visual);overflow:hidden;border:1px solid rgba(201,162,39,.28);
  box-shadow:0 40px 80px -34px rgba(0,0,0,.7);aspect-ratio:5/4;background:#0d1228}
.visual{position:relative}
.vcard{position:relative;border-radius:var(--r-visual);overflow:hidden;background:linear-gradient(150deg,#141b3a,#0d1228);
  border:1px solid rgba(201,162,39,.26);box-shadow:0 40px 80px -34px rgba(0,0,0,.7)}
.vcard svg{display:block;width:100%;height:auto}
.vcard .cap{position:absolute;right:16px;bottom:14px;color:#aeb6d6;font:11px var(--ui);
  background:rgba(10,14,30,.55);backdrop-filter:blur(4px);padding:6px 12px;border-radius:20px;border:1px solid rgba(255,255,255,.08)}
.chip-float{position:absolute;z-index:5;background:#fff;color:var(--ink);border-radius:var(--r-card-sm);padding:13px 16px;
  box-shadow:0 20px 40px -16px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:2px}
.chip-float .n{font:700 22px var(--display);color:var(--navy);line-height:1}
.chip-float .l{font:11px var(--ui);color:var(--muted);font-weight:600}
.chip-float.a{top:18px;right:20px;animation:float 6s ease-in-out infinite}
.chip-float.b{bottom:-18px;left:-16px;animation:float 6s ease-in-out infinite .8s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@media (prefers-reduced-motion:reduce){.chip-float{animation:none}}

/* ---- Stat strip (hero + blocks) ---- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.1);
  margin-top:clamp(36px,5vw,60px)}
.section--white .stats,.section--cream .stats{border-top-color:var(--rule)}
.stats .cell{padding:24px 8px 6px;border-left:1px solid rgba(255,255,255,.1)}
.section--white .stats .cell,.section--cream .stats .cell{border-left-color:var(--rule)}
.stats .cell:first-child{border-left:0;padding-left:0}
.stats .val{font:700 clamp(30px,3.4vw,46px) var(--display);color:var(--gold-lt);line-height:1}
.section--white .stats .val,.section--cream .stats .val{color:var(--gold-on-light)}
.stats .lab{font:13px var(--ui);color:var(--muted-on-black);margin-top:8px}
.section--white .stats .lab,.section--cream .stats .lab{color:var(--grey)}

/* ---- Section header ---- */
.sec-head{margin-bottom:clamp(26px,4vw,42px)}
.sec-title{font:600 clamp(28px,3.2vw,42px)/1.12 var(--display);letter-spacing:-.01em;color:var(--navy)}
.section--black .sec-title,.section--slate .sec-title{color:#fff}
.sec-lead{font:clamp(16px,1.4vw,19px)/1.7 var(--ui);color:var(--grey);max-width:820px}
.eyebrow{display:flex;align-items:center;gap:12px;font:700 12px/1.4 var(--ui);letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-on-light)}
.eyebrow::before{content:"";width:32px;height:2px;background:var(--gold);flex:none}
.section--black .eyebrow,.section--slate .eyebrow{color:var(--gold-lt)}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;gap:8px;font:600 14.5px var(--ui);letter-spacing:0;
  text-transform:none;padding:13px 22px;border-radius:var(--r-btn);border:1px solid transparent;cursor:pointer;
  transition:transform .15s,box-shadow .2s,background-color .2s,border-color .2s,color .2s}
.btn--gold{background:var(--gold);color:var(--navy);box-shadow:0 8px 20px -8px rgba(201,162,39,.6)}
.btn--gold:hover{transform:translateY(-2px);box-shadow:0 14px 28px -10px rgba(201,162,39,.7)}
.btn--ghost-dark{background:transparent;color:#fff;border-color:rgba(255,255,255,.32)}
.btn--ghost-dark:hover{border-color:var(--gold-lt);color:var(--gold-lt)}
.btn--ghost-light{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn--ghost-light:hover{background:var(--navy);color:#fff}

/* ---- Link with arrow ---- */
.link-arrow{font:600 13px var(--ui);letter-spacing:.02em;color:var(--gold-on-light);
  display:inline-flex;gap:6px;align-items:center;transition:gap .2s,color .2s}
.link-arrow:hover{gap:11px}
.section--black .link-arrow,.section--slate .link-arrow{color:var(--gold-lt)}

/* ---- Chips (pill) ---- */
.chip{display:inline-block;font:700 11px var(--ui);letter-spacing:.05em;text-transform:uppercase;
  padding:5px 11px;border-radius:var(--r-chip);border:1px solid var(--border-light);background:var(--cream);color:var(--slate)}
.chip--solid{background:var(--navy);color:#fff;border-color:var(--navy)}
.chip--gold{background:#FBF3DE;border-color:#F0E4C4;color:var(--gold-on-light)}
.chip--info{background:#EEF4FF;border-color:#D3E1F5;color:#1A5FB4}

/* ---- Cards ---- */
.card{background:#fff;border:1px solid var(--border-light);border-radius:var(--r-card);padding:26px 24px;
  transition:transform .25s,box-shadow .25s,border-color .25s}
.card:hover{transform:translateY(-5px);box-shadow:0 30px 50px -30px rgba(20,26,48,.32);border-color:#ddd6bf}
.card-title{font:600 clamp(18px,1.9vw,23px)/1.25 var(--display);color:var(--navy)}
.card-body{font:15px/1.65 var(--ui);color:var(--grey);margin-top:10px}
.card-meta{font:12px var(--ui);color:var(--grey);margin-top:14px}

/* ---- Dark sections get a subtle gold glow ---- */
.section--black{background:var(--section-dark-bg);position:relative;overflow:hidden}
.section--black::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(700px 320px at 80% 15%,rgba(201,162,39,.12),transparent 60%)}
.section--black>.container{position:relative}
.section--slate{background:var(--navy2)}

/* ---- Two-column split ---- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);align-items:start}
.split--titleleft{grid-template-columns:.9fr 1.1fr}

/* ---- Numbered rows ---- */
.numrow{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:baseline}
.numrow .n{font:700 14px var(--display);color:var(--gold-on-light)}
.numrow h3{font:600 18px var(--display);color:var(--navy);margin-bottom:6px}
.numrow p{font:15px/1.6 var(--ui);color:var(--grey)}

/* ---- 4-col grids ---- */
/* rc293 — cards divide the row EVENLY for any count (3 cards no longer leave a
   dead 4th column). auto-fit collapses empty tracks so N cards share the width;
   the media queries below still cap it to 2 / 1 columns on smaller screens. */
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}
.grid4>*{padding:0}
.grid4 .n{font:700 13px var(--display);color:var(--gold-on-light);letter-spacing:.02em}
.grid4 h3{font:600 clamp(18px,1.7vw,22px)/1.25 var(--display);color:var(--navy);margin:12px 0 10px}
.grid4 p{font:15px/1.62 var(--ui);color:var(--grey);min-height:64px}
.grid4 .link-arrow{margin-top:8px}
.section--slate .grid4 h3,.section--black .grid4 h3{color:#fff}
.section--slate .grid4 .n{color:var(--gold-lt)}

.grid4-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.grid4-cards>*{background:#fff;border:1px solid var(--border-light);border-radius:var(--r-card-sm);padding:22px 20px;
  transition:transform .25s,box-shadow .25s}
.grid4-cards>*:hover{transform:translateY(-4px);box-shadow:0 26px 44px -30px rgba(20,26,48,.3)}
.grid4-cards .eb{font:700 11px var(--ui);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-on-light)}
.grid4-cards h3{font:600 18px/1.25 var(--display);color:var(--navy);margin:10px 0}
.grid4-cards p{font:14px/1.55 var(--ui);color:var(--grey)}
.grid4-cards .foot{font:12px var(--ui);color:var(--grey);margin-top:18px}

/* ---- Scope columns (dark) ---- */
.scopecol h3{font:700 13px var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-lt);
  padding-bottom:12px;border-bottom:2px solid var(--gold)}
.scopecol.out h3{color:var(--muted-on-black);border-bottom-color:var(--border-black)}
.scopecol li{padding:16px 0;border-top:1px solid var(--divider-black);font:16px/1.45 var(--ui)}
.scopecol.out li{color:#8891b5}

/* ---- Priority rows ---- */
.prio>li{padding:22px 0;border-top:1px solid var(--rule)}
.prio .top{display:flex;justify-content:space-between;gap:24px;align-items:baseline}
.prio .top h3{font:600 clamp(17px,1.6vw,20px) var(--display);color:var(--navy)}
.prio .out{font:14px/1.5 var(--ui);color:var(--grey);text-align:right;max-width:420px}
.prio .meta{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:16px;margin-top:16px}
.prio .meta .lab{font:11px var(--ui);letter-spacing:.05em;text-transform:uppercase;color:var(--grey);display:block;margin-bottom:5px}
.prio .meta .v{font:13px var(--ui);color:var(--slate)}

/* ---- Doc cards ---- */
.doccard{border:1px solid var(--border-light);border-radius:12px;padding:18px;background:#fff;transition:box-shadow .2s}
.doccard:hover{box-shadow:0 18px 34px -26px rgba(20,26,48,.35)}
.doccard .num{font:11px var(--ui);color:var(--grey);letter-spacing:.04em}
.doccard h4{font:600 16px var(--display);color:var(--navy);margin:8px 0}
.doccard .m{font:12px var(--ui);color:var(--grey)}
.stack>*{margin-top:14px}.stack>*:first-child{margin-top:0}

/* ---- Roadmap (dark) ---- */
.roadmap{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--divider-black);border-radius:14px;overflow:hidden}
.roadmap .col{padding:22px 18px;border-left:1px solid var(--divider-black)}
.roadmap .col:first-child{border-left:0}
.roadmap .col .h{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.roadmap .col .h b{font:700 15px var(--ui)}
.roadmap .col li{padding:12px 0;font:14px/1.4 var(--ui)}
.roadmap .col li .own{color:var(--muted-on-black);font-size:12px;display:block;margin-top:3px}

/* ---- Agenda ---- */
.agenda-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.agenda-filters button{font:13px var(--ui);padding:9px 16px;border:1px solid var(--rule);background:#fff;border-radius:8px;cursor:pointer;transition:.18s}
.agenda-filters button[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.agenda-item{display:grid;grid-template-columns:150px 1fr auto;gap:20px;padding:22px 0;border-top:1px solid var(--rule);align-items:start}
.agenda-item .when b{font:700 14px var(--ui)}
.agenda-item .when span{display:block;font:12px var(--ui);color:var(--grey);margin-top:4px}
.agenda-item h4{font:600 16px var(--display);color:var(--navy);margin:4px 0 6px}
.agenda-item p{font:14px/1.55 var(--ui);color:var(--grey)}
.agenda-item .tags{display:flex;flex-direction:column;gap:6px;align-items:flex-end;text-align:right}

/* ---- Stepper ---- */
.stepper{display:grid;grid-template-columns:repeat(5,1fr);gap:22px}
.stepper>li{padding:0}
.stepper .n{font:700 13px var(--display);color:var(--gold-on-light)}
.stepper h4{font:600 15px var(--display);color:var(--navy);margin:10px 0 8px}
.stepper p{font:13px/1.5 var(--ui);color:var(--grey)}

.placeholder{color:var(--gold-on-light);font:700 13px var(--ui);letter-spacing:.02em}
.footnote{font:14px/1.5 var(--ui);color:var(--muted-on-black-2)}

/* ---- Photo slot ---- */
.photo-slot{border:1px dashed var(--border-light);border-radius:14px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:12px;text-align:center;color:var(--grey);padding:32px;min-height:200px;background:#fff}
.section--black .photo-slot,.section--slate .photo-slot{border-color:var(--border-black);color:var(--muted-on-black);background:transparent}

/* ---- Publication article (rc289) ---- */
/* Lead / abstract: the summary reads as a distinct standfirst, set off from the
   body by a hairline rule so a long lead paragraph no longer runs into the text. */
.pub-lead{font:clamp(17px,1.4vw,20px)/1.75 var(--serif);color:var(--slate);margin:0 0 26px}
.pub-rule{border:0;border-top:1px solid var(--rule,#E4DECF);margin:0 0 30px}
/* Rich body: clear vertical rhythm and generous space ABOVE section headings so
   sections separate cleanly instead of cramping against the preceding text. */
.pub-body{max-width:70ch}
.pub-body > :first-child{margin-top:0}
.pub-body h3{font:600 23px/1.3 var(--display);color:var(--navy);margin:40px 0 12px}
.pub-body h4{font:600 18px/1.35 var(--display);color:var(--navy);margin:30px 0 8px}
.pub-body h3:first-child,.pub-body h4:first-child{margin-top:0}
.pub-body p{margin:0 0 18px}
.pub-body ul,.pub-body ol{margin:0 0 20px 24px;padding:0;list-style:revert}
.pub-body li{margin:0 0 9px;padding-left:4px}
.pub-body a{color:var(--gold-on-light);text-decoration:underline}
.pub-body strong,.pub-body b{font-weight:700;color:var(--ink)}
.pub-body hr{border:0;border-top:1px solid var(--rule,#E4DECF);margin:30px 0}
.pub-body blockquote{border-left:3px solid var(--gold);padding:4px 0 4px 18px;color:var(--grey);font-style:italic;margin:22px 0}
.pub-body > :last-child{margin-bottom:0}
/* rc291 — clickable heading anchors + scroll offset so a TOC jump clears the nav */
.pub-body h3,.pub-body h4{scroll-margin-top:90px;position:relative}
.pub-body h3 .anchor,.pub-body h4 .anchor{opacity:0;text-decoration:none;color:var(--gold);margin-left:8px;font-size:.8em;transition:opacity .15s}
.pub-body h3:hover .anchor,.pub-body h4:hover .anchor{opacity:1}

/* ---- Publication article layout (rc291) ---- */
/* A slim reading-progress bar pinned to the top of the viewport. */
.pub-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--gold,#B8912F);z-index:60;transition:width .08s linear}
/* Article header: eyebrow, title, byline, hairline rule. */
.pub-head{margin-bottom:22px}
.pub-eyebrow{display:inline-block;font:700 12px/1 var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-on-light);background:rgba(184,145,47,.1);border-radius:999px;padding:7px 12px;margin-bottom:16px}
.pub-title{font:700 clamp(28px,3.4vw,42px)/1.15 var(--display,var(--ui));color:var(--navy);margin:0 0 16px;letter-spacing:-.01em}
.pub-byline{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font:13px var(--ui);color:var(--grey)}
.pub-byline .who{color:var(--ink);font-weight:600}
.pub-byline .sep{width:3px;height:3px;border-radius:50%;background:var(--rule,#CFC7B4)}
.pub-headrule{border:0;border-top:1px solid var(--rule,#E4DECF);margin:22px 0 26px}
.pub-hero{width:100%;height:auto;border-radius:16px;display:block;margin:0 0 26px;box-shadow:0 20px 44px -28px rgba(16,22,50,.4)}
/* Auto Table of Contents — a collapsible card that works on desktop and mobile. */
.pub-toc{border:1px solid var(--rule,#E4DECF);border-radius:14px;background:#FAF8F2;padding:0 18px;margin:0 0 30px}
.pub-toc > summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 0;font:700 13px var(--ui);letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}
.pub-toc > summary::-webkit-details-marker{display:none}
.pub-toc > summary .chev{transition:transform .2s;color:var(--grey);font-size:16px}
.pub-toc[open] > summary .chev{transform:rotate(90deg)}
.pub-toc ol{list-style:none;margin:0;padding:0 0 14px;counter-reset:toc}
.pub-toc li{counter-increment:toc;margin:0}
.pub-toc a{display:flex;gap:10px;padding:8px 0;font:14px/1.4 var(--ui);color:var(--slate);text-decoration:none;border-top:1px solid rgba(0,0,0,.05)}
.pub-toc a::before{content:counter(toc, decimal-leading-zero);color:var(--gold-on-light);font-weight:700;font-size:12px;min-width:22px}
.pub-toc a.sub{padding-left:22px;font-size:13px;color:var(--grey)}
.pub-toc a:hover{color:var(--navy)}
/* Download card — an inviting affordance for the attached document. */
.pub-download{display:flex;align-items:center;gap:14px;border:1px solid var(--rule,#E4DECF);border-radius:14px;padding:15px 18px;background:#fff;margin:0 0 26px;text-decoration:none;transition:box-shadow .16s,border-color .16s}
.pub-download:hover{border-color:var(--gold,#B8912F);box-shadow:0 10px 26px -18px rgba(16,22,50,.4)}
.pub-download .ic{flex:none;width:42px;height:42px;border-radius:10px;background:rgba(184,145,47,.12);color:var(--gold-on-light);display:grid;place-items:center;font:700 12px var(--ui)}
.pub-download .tx{min-width:0;flex:1}
.pub-download .tx b{display:block;font:600 14px var(--ui);color:var(--ink)}
.pub-download .tx span{font:12px var(--ui);color:var(--grey)}
.pub-download .go{flex:none;font:600 13px var(--ui);color:var(--gold-on-light)}
/* Article footer: share + back. */
.pub-foot{border-top:1px solid var(--rule,#E4DECF);margin-top:36px;padding-top:24px}

/* ---- Footer ---- */
.site-footer{background:var(--navy-deep);color:var(--muted-on-black-2);padding:clamp(44px,5vw,64px) 0 30px}
.site-footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px}
.site-footer h5{font:700 12px var(--ui);letter-spacing:.08em;text-transform:uppercase;color:#fff;margin-bottom:14px}
.site-footer a{display:block;font:13.5px/2.05 var(--ui);color:var(--muted-on-black-2);transition:color .18s}
.site-footer a:hover{color:var(--gold-lt)}
.site-footer .brand .wm b{color:#fff;font:600 20px var(--display)}
.site-footer .brand .wm span{color:var(--muted-on-black);font:10px var(--ui);letter-spacing:.13em}
.site-footer .disclaimer{font:13px/1.65 var(--ui);color:var(--muted-on-black);max-width:320px;margin-top:14px}
.site-footer .legal{border-top:1px solid rgba(255,255,255,.08);margin-top:38px;padding-top:20px;
  display:flex;justify-content:space-between;gap:16px;font:12px var(--ui);color:var(--muted-on-black)}

/* ---- Public form focus polish ---- */
main input:focus-visible,main select:focus-visible,main textarea:focus-visible{
  outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}

/* ---- Responsive ---- */
@media (max-width:1024px){
  .hero .grid,.split,.split--titleleft{grid-template-columns:1fr}
  .grid4,.grid4-cards,.stepper{grid-template-columns:repeat(2,1fr)}
  .roadmap{grid-template-columns:repeat(2,1fr)}
  .roadmap .col:nth-child(3){border-left:0}
  .site-footer .cols{grid-template-columns:1fr 1fr}
  .chip-float.b{left:0}
}
/* Medium widths: drop the brand subtitle (wider than the "ATRI" mark itself)
   so the single-row nav keeps room before it needs to collapse (rc70). */
@media (max-width:1560px){
  .masthead .brand .wm span{display:none}
  .masthead .brand .wm{border-left:0;padding-left:0}
}
/* Top nav collapses to the menu button below this width so the ~8 CMS nav
   items (now flanked by the member CTA) never wrap or clip on laptops (rc78). */
@media (max-width:1400px){
  .mainnav{display:none}
  .masthead.open .mainnav{display:flex;flex-direction:column;flex-wrap:nowrap;gap:0;position:absolute;left:0;right:0;top:100%;
    background:var(--navy);border-top:1px solid rgba(255,255,255,.08);padding:8px var(--pad) 16px;z-index:30}
  .masthead.open .mainnav a{padding:14px 0;border-top:1px solid rgba(255,255,255,.08);font-size:16px}
  .masthead.open .mainnav a::after{display:none}
  .masthead.open .mainnav a.active{color:var(--gold-lt)}
  .masthead.open .mainnav a:first-child{border-top:0}
  .menu-toggle{display:inline-flex}
  .navdrop{width:100%}
  .masthead.open .navdrop-t{width:100%;justify-content:space-between;padding:14px 0;font-size:16px;
    border-top:1px solid rgba(255,255,255,.08)}
  .navdrop-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    background:transparent;padding:0 0 8px 14px;display:none;min-width:0}
  .navdrop.open .navdrop-menu{display:block}
  .navdrop-menu a{color:#c9cfe6;padding:11px 0;font-size:15px}
  .navdrop-menu a:hover{background:transparent;color:#fff}
}
@media (max-width:768px){
  .utilbar .left{display:none}
  .prio .meta{grid-template-columns:1fr 1fr}
  .prio .top{flex-direction:column}
  .prio .out{text-align:left}
  .agenda-item{grid-template-columns:1fr}
  .agenda-item .tags{align-items:flex-start;text-align:left;flex-direction:row;flex-wrap:wrap}
  .chip-float{display:none}
}
@media (max-width:520px){
  .grid4,.grid4-cards,.stepper,.roadmap,.stats{grid-template-columns:1fr}
  .stats .cell{border-left:0;padding-left:0}
  .site-footer .cols{grid-template-columns:1fr}
  .site-footer .legal{flex-direction:column}
}

/* ================= THEME: Editorial Black & Gold ================= */
body.theme-editorial_black{
  --navy:#111111; --navy2:#171717; --navy3:#1e1e1e; --navy-deep:#000000;
  --black:#111111; --slate:#1a1a1a;
  --gold:#C9A227; --gold-lt:#E4C767; --gold-on-light:#6e560f;
  --ink:#141414; --grey:#4a4a4a; --muted:#4a4a4a;
  --paper:#F7F4EC; --cream:#EFEBDD; --near-white:#FBFAF3;
  --rule:#E0D9C6; --border-light:#DCD4C1;
  --muted-on-black:#9a9a9a; --muted-on-black-2:#cccccc;
  --r-card:2px; --r-card-sm:2px; --r-btn:2px; --r-chip:2px; --r-visual:2px;
  --hero-bg:#111111; --section-dark-bg:#111111; --masthead-bg:#111111;
}
body.theme-editorial_black .hero::before{display:none}          /* flat black hero */
body.theme-editorial_black .section--black::before{display:none}
body.theme-editorial_black .btn-masuk{border-radius:2px}
body.theme-editorial_black .lang{border-radius:2px}
body.theme-editorial_black .card:hover,body.theme-editorial_black .grid4-cards>*:hover{transform:none;box-shadow:0 0 0 1px var(--gold)}

/* ================= THEME: Light & Minimal ================= */
body.theme-light_minimal{
  --navy:#2b3140; --navy2:#313747; --navy3:#3a4152; --navy-deep:#2b3140;
  --black:#2b3140; --slate:#2b3140;
  --gold:#B8901F; --gold-lt:#D8B24A; --gold-on-light:#8a6d1f;
  --ink:#20242e; --grey:#5f6980; --muted:#6b7488;
  --paper:#FFFFFF; --cream:#FAF8F3; --near-white:#FFFFFF;
  --rule:#ECEAE2; --border-light:#EAE7DD;
  --muted-on-black:#aab0c0; --muted-on-black-2:#d6dae4;
  --r-card:14px; --r-card-sm:12px; --r-btn:10px; --r-chip:20px; --r-visual:16px;
  --hero-bg:linear-gradient(160deg,#FBFAF6,#F3F0E8);
  --section-dark-bg:#F5F2EA; --masthead-bg:#FFFFFF;
}
/* masthead: white with dark text */
body.theme-light_minimal .masthead{color:var(--ink);border-bottom:1px solid var(--rule)}
body.theme-light_minimal .masthead .brand .wm{border-left-color:var(--rule)}
body.theme-light_minimal .masthead .brand .wm b{color:var(--ink)}
body.theme-light_minimal .masthead .brand .wm span{color:var(--grey)}
body.theme-light_minimal .mainnav a{color:var(--ink)}
body.theme-light_minimal .mainnav a:hover,body.theme-light_minimal .mainnav a.active{color:var(--gold-on-light)}
body.theme-light_minimal .utilbar{background:var(--cream);color:var(--grey);border-bottom:1px solid var(--rule)}
body.theme-light_minimal .lang{border-color:var(--rule)}
/* hero: light bg, dark text */
body.theme-light_minimal .hero{color:var(--ink)}
body.theme-light_minimal .hero::before{background:radial-gradient(560px 300px at 85% 12%,rgba(184,144,31,.10),transparent 60%)}
body.theme-light_minimal .hero .lead{color:var(--grey)}
body.theme-light_minimal .hero h1 em{color:var(--gold-on-light)}
body.theme-light_minimal .hero .trust{color:var(--grey)}
body.theme-light_minimal .btn--ghost-dark{color:var(--navy);border-color:var(--navy)}
body.theme-light_minimal .btn--ghost-dark:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
/* dark bands become light with dark text */
body.theme-light_minimal .section--black,body.theme-light_minimal .section--slate{background:var(--section-dark-bg)}
body.theme-light_minimal .section--black::before{display:none}
body.theme-light_minimal .section--black .sec-title,body.theme-light_minimal .section--slate .sec-title{color:var(--ink)}
body.theme-light_minimal .section--black .eyebrow,body.theme-light_minimal .section--slate .eyebrow{color:var(--gold-on-light)}
body.theme-light_minimal .section--black .grid4 h3,body.theme-light_minimal .section--slate .grid4 h3{color:var(--ink)}
body.theme-light_minimal .section--slate .grid4 .n{color:var(--gold-on-light)}
body.theme-light_minimal .section--black .link-arrow,body.theme-light_minimal .section--slate .link-arrow{color:var(--gold-on-light)}
/* stats on light bands */
body.theme-light_minimal .stats{border-top-color:var(--rule)}
body.theme-light_minimal .stats .cell{border-left-color:var(--rule)}
body.theme-light_minimal .stats .val{color:var(--gold-on-light)}
body.theme-light_minimal .stats .lab{color:var(--grey)}
/* footer stays a calm charcoal to ground the page */
body.theme-light_minimal .site-footer{background:#2b3140;color:#d6dae4}

/* ============================================================================
   rc29 — public polish (additive, theme-safe). Light, reversible touches; no
   change to the institutional identity or the three themes. Honours reduced
   motion via the global media query in foundation.css.
   ========================================================================== */
html{scroll-behavior:smooth}
/* gentle image zoom on figure/photo hover — a modern, restrained touch */
figure img,.hero-photo img,.photo-slot img{transition:transform .5s cubic-bezier(.2,.75,.25,1)}
figure:hover img,.hero-photo:hover img{transform:scale(1.025)}
/* document cards get the same soft hover-lift as .card for consistency */
.doccard{transition:transform .25s,box-shadow .25s,border-color .25s}
.doccard:hover{transform:translateY(-4px);box-shadow:0 26px 46px -30px rgba(20,26,48,.3);border-color:#ddd6bf}
/* work-group / grid tiles lift subtly too */
.grid4>div{border-radius:14px;transition:transform .25s,box-shadow .25s}
.grid4>div:hover{transform:translateY(-3px)}
/* buttons: a touch more polish on press */
.btn:active{transform:translateY(0) scale(.985)}
/* chips settle into fully rounded pills for a contemporary feel */
.chip{border-radius:999px}
/* rc31 — collapse the doubled vertical gap between stacked same-colour sections
   (e.g. two text sections in a row) so consecutive blocks read as one flow */
.section--white + .section--white,
.section--cream + .section--cream,
.section--black + .section--black,
.section--slate + .section--slate{padding-top:0}

/* rc33 — nested navigation: desktop dropdowns + mobile accordion */
.navdrop{position:relative}
.navdrop-t{background:none;border:0;color:#c9cfe6;font:500 14.5px var(--ui);cursor:pointer;
  padding:4px 0;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.navdrop-t:hover,.navdrop:hover .navdrop-t,.navdrop.open .navdrop-t{color:#fff}
.navdrop .caret{font-size:10px;transition:transform .2s}
.navdrop:hover .caret,.navdrop.open .caret{transform:rotate(180deg)}
.navdrop-menu{position:absolute;top:calc(100% + 12px);left:0;min-width:220px;background:#fff;
  border-radius:12px;box-shadow:0 22px 50px -20px rgba(10,14,30,.55);padding:8px;
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s,transform .18s,visibility .18s;z-index:60}
.navdrop:hover .navdrop-menu,.navdrop:focus-within .navdrop-menu,.navdrop.open .navdrop-menu{opacity:1;visibility:visible;transform:none}
.navdrop-menu::before{content:"";position:absolute;top:-10px;left:0;right:0;height:10px}
.navdrop-menu a{display:block;padding:9px 13px;border-radius:8px;font:500 14px var(--ui);color:var(--ink);white-space:nowrap}
.navdrop-menu a::after{display:none}
.navdrop-menu a:hover{background:var(--cream);color:var(--navy)}
/* navdrop mobile behaviour folded into the max-width:1180px block above (rc70) */

/* ============ rc84 — multi-column block rows (per-block width auto-flow) ============
   Consecutive blocks whose widths sum to <= 12 sit side by side in one .block-row.
   Each block keeps rendering its own <section>; the grid cell just sizes it. Full-
   width single blocks are rendered bare (no wrapper), so this is additive only. */
.block-row{display:grid;grid-template-columns:repeat(12,1fr);align-items:stretch}
.block-row>.bcol{min-width:0}
.block-row>.bcol>section{height:100%}
/* keep the section chrome but let a column define its own edges */
.block-row>.bcol>section{overflow:hidden}
.bcol--12{grid-column:span 12}
.bcol--8{grid-column:span 8}
.bcol--6{grid-column:span 6}
.bcol--4{grid-column:span 4}
@media (max-width:820px){
  .block-row{grid-template-columns:1fr}
  .block-row>.bcol{grid-column:1 / -1}
}

/* rc209 — rich-text block (WYSIWYG output) */
.rich{font:17px/1.8 var(--serif);color:var(--ink)}
.rich p{margin:0 0 18px}
.rich h3{font:600 22px/1.35 var(--display,var(--ui));margin:26px 0 10px;color:var(--ink)}
.rich h4{font:600 18px/1.4 var(--ui);margin:22px 0 8px;color:var(--ink)}
.rich ul,.rich ol{margin:0 0 18px;padding-left:24px}
.rich li{margin:0 0 7px}
.rich a{color:var(--gold-on-light);text-decoration:underline}
.rich blockquote{margin:18px 0;padding:6px 0 6px 20px;border-left:4px solid var(--gold);font-style:italic;color:var(--slate)}
.rich strong,.rich b{font-weight:700}
.rich > :last-child{margin-bottom:0}
