:root{
    --bg:#0a0616; --bg-2:#120b26; --bg-3:#1a1136;
    --ink:#f2edff; --ink-2:#b9b0d6; --ink-3:#7f75a3;
    --line:rgba(190,170,255,.14);
    --accent:#a78bfa; --accent-2:#f0abfc; --accent-ink:#1a0d3a;
    --radius:22px; --max:1120px;
    --serif:'Fraunces',Georgia,serif; --sans:'Inter',system-ui,sans-serif;
  }
  [data-theme="light"]{
    --bg:#faf8ff; --bg-2:#f1edfb; --bg-3:#e8e1f7;
    --ink:#1a1030; --ink-2:#4a3f6b; --ink-3:#7d729d;
    --line:rgba(60,30,120,.12);
    --accent:#6d4ed8; --accent-2:#b04cc8; --accent-ink:#ffffff;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
  h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1;letter-spacing:-.01em}
  h2{font-size:clamp(1.9rem,3.5vw,2.6rem)}
  h3{font-size:1.25rem;margin-bottom:.5rem}
  p{color:var(--ink-2)}
  .btn{display:inline-flex;align-items:center;white-space:nowrap;gap:8px;padding:12px 22px;border-radius:999px;font-weight:600;font-size:.95rem;border:1px solid var(--line);transition:transform .15s,background .15s}
  .btn:hover{transform:translateY(-1px)}
  .btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-ink);border:none;box-shadow:0 10px 30px -12px rgba(167,139,250,.8)}
  .btn-ghost{background:transparent;color:var(--ink)}
  .btn-ghost:hover{background:var(--bg-3)}
  .link{color:var(--accent);font-weight:600;font-size:.95rem}
  .link:hover{text-decoration:underline}
  .kicker{font-size:.85rem;color:var(--accent);font-weight:600;margin-bottom:10px}
  .lead{font-size:1.1rem;max-width:62ch}
  section{padding:88px 0;border-top:1px solid var(--line)}
  .sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:36px;flex-wrap:wrap}

  /* NAV */
  header{position:sticky;top:0;z-index:50;backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);background:color-mix(in srgb,var(--bg) 70%,transparent);border-bottom:1px solid var(--line)}
  .nav{display:flex;align-items:center;justify-content:space-between;height:68px;gap:20px}
  .brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:1.15rem;font-weight:600;flex:none}
  .brand .logo{width:34px;height:34px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
  .menu{display:flex;gap:16px;font-size:.88rem;color:var(--ink-2);white-space:nowrap}
  .menu a:hover{color:var(--ink)}
  .nav-right{display:flex;align-items:center;gap:12px}
  .theme{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;font-size:1rem}
  .burger{display:none;background:none;border:1px solid var(--line);color:var(--ink);width:38px;height:38px;border-radius:10px;cursor:pointer;font-size:1.1rem}

  /* HERO */
  .hero{padding:72px 0 40px;border-top:none;position:relative;overflow:hidden}
    .hero-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
  .hero-bg span{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;animation:float 14s ease-in-out infinite}
  .hero-bg span:first-child{width:52vw;height:52vw;max-width:720px;max-height:720px;right:-12%;bottom:-25%;background:radial-gradient(circle,rgba(167,139,250,.55),transparent 65%)}
  .hero-bg span:last-child{width:34vw;height:34vw;max-width:480px;max-height:480px;left:-10%;top:-10%;background:radial-gradient(circle,rgba(240,171,252,.35),transparent 65%);animation-delay:-7s}
  .hero::after{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse at 30% 20%,#000 20%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 30% 20%,#000 20%,transparent 70%);opacity:.5;pointer-events:none;z-index:0}
  @keyframes float{0%,100%{transform:translate(0,0)}50%{transform:translate(-4%,6%)}}
  .hero .wrap{position:relative;z-index:1}
  .hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:end;position:relative}
  .hero h1{font-size:clamp(2.6rem,5.6vw,4.4rem);font-weight:300;margin:14px 0 22px;letter-spacing:-.02em}
  .hero h1 em{font-style:italic;font-weight:500;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}
  .hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
  .portrait{position:relative;justify-self:end;width:100%;max-width:420px}
  .portrait .frame{aspect-ratio:4/5;border-radius:var(--radius) var(--radius) 0 0;background:radial-gradient(120% 80% at 50% 100%,rgba(167,139,250,.35),transparent 60%),linear-gradient(180deg,var(--bg-3),var(--bg-2));border:1px solid var(--line);border-bottom:none;display:grid;place-items:center;color:var(--ink-3);overflow:hidden;box-shadow:0 40px 80px -40px rgba(120,80,255,.5)}
  .portrait img{width:100%;height:100%;object-fit:cover;object-position:top}
  .stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--bg-2) 80%,transparent);backdrop-filter:blur(10px);margin-top:56px;position:relative;z-index:1}
  .stat{padding:22px 24px;border-right:1px solid var(--line)}
  .stat:last-child{border-right:none}
  .stat b{display:block;font-family:var(--serif);font-size:2.2rem;font-weight:500;color:var(--ink);background:linear-gradient(90deg,var(--ink),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}
  .stat span{font-size:.85rem;color:var(--ink-3)}

  /* CARDS */
  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:transform .25s,border-color .25s,box-shadow .25s}
  .card:hover,.research-card:hover,.platform:hover,.event:hover,.post-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 24px 50px -30px rgba(120,80,255,.45)}
  .research-card,.platform,.event,.post-card{transition:transform .25s,border-color .25s,box-shadow .25s}
  .card .icon{width:44px;height:44px;border-radius:12px;background:var(--bg-3);display:grid;place-items:center;margin-bottom:18px;color:var(--accent);font-size:1.2rem}
  .card p{font-size:.95rem;margin-bottom:16px}

  /* ABOUT */
  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px}
  .about-grid p+p{margin-top:14px}
  .timeline{list-style:none;border-left:1px solid var(--line);padding-left:22px}
  .timeline li{position:relative;padding-bottom:22px}
  .timeline li::before{content:"";position:absolute;left:-27px;top:8px;width:9px;height:9px;border-radius:50%;background:var(--accent)}
  .timeline small{color:var(--ink-3);display:block;font-size:.85rem}
  .timeline b{font-weight:600;color:var(--ink)}

  /* RESEARCH */
  .tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
  .tag{padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--bg-2);font-size:.9rem;color:var(--ink-2)}

  /* PUBLICATIONS */
  .pub-list{display:flex;flex-direction:column}
  .pub{display:grid;grid-template-columns:70px 1fr auto;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);align-items:start}
  .pub .year{font-family:var(--serif);font-size:1.3rem;color:var(--accent)}
  .pub h4{font-weight:600;font-size:1.02rem;margin-bottom:4px;color:var(--ink)}
  .pub p{font-size:.9rem}
  .pub .badge{font-size:.78rem;padding:5px 10px;border-radius:999px;background:var(--bg-3);color:var(--ink-2);white-space:nowrap}
  .books{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
  .book{aspect-ratio:3/4;border-radius:12px 6px 6px 12px;padding:16px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;font-family:var(--serif);font-size:.95rem;line-height:1.25;box-shadow:0 24px 40px -22px rgba(0,0,0,.7),inset 6px 0 0 rgba(255,255,255,.12);transition:transform .25s}
  .book:hover{transform:translateY(-6px) rotate(-1deg)}
  .book-cat{position:absolute;top:12px;left:14px;font-family:var(--sans);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;background:rgba(0,0,0,.35);padding:4px 8px;border-radius:999px}
  .book .isbn{opacity:.6;font-size:.68rem}
  .book small{display:block;font-family:var(--sans);font-size:.72rem;opacity:.8;margin-top:6px;line-height:1.35}

  /* TEACHING */
  .courses{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
  .course{display:flex;justify-content:space-between;gap:12px;padding:16px 20px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2)}
  .course span{color:var(--ink-3);font-size:.85rem;white-space:nowrap}

  /* TRAINING */
  .events{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .event{border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:var(--bg-2)}
  .event .date{font-family:var(--serif);font-size:1.6rem;color:var(--accent);line-height:1}
  .event .date small{display:block;font-family:var(--sans);font-size:.8rem;color:var(--ink-3);margin-top:4px}
  .event h3{margin-top:14px;font-size:1.1rem}
  .event p{font-size:.9rem}

  /* CTA */
  .cta{border-radius:26px;padding:64px 48px;text-align:center;background:linear-gradient(135deg,var(--bg-3),var(--bg-2));border:1px solid var(--line);position:relative;overflow:hidden}
  .cta::after{content:"";position:absolute;inset:-40% auto auto 50%;transform:translateX(-50%);width:600px;height:300px;background:radial-gradient(ellipse,rgba(240,171,252,.22),transparent 65%);pointer-events:none}
  .cta h2{position:relative;max-width:20ch;margin:0 auto 14px}
  .cta p{position:relative;max-width:52ch;margin:0 auto 28px}
  .cta .hero-actions{justify-content:center;margin-top:0;position:relative}

  /* FOOTER */
  footer{padding:56px 0 32px;border-top:1px solid var(--line);font-size:.92rem}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;margin-bottom:40px}
  .foot-grid h3{font-size:1.15rem;margin-bottom:12px}
  .foot-grid h4{font-size:.9rem;margin-bottom:12px;color:var(--ink)}
  .foot-grid a,.foot-grid p{display:block;color:var(--ink-2);line-height:1.9}
  .foot-grid a:hover{color:var(--accent)}
  .copy{border-top:1px solid var(--line);padding-top:22px;color:var(--ink-3);font-size:.85rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

  @media (max-width:1300px){.menu{gap:10px;font-size:.8rem}.nav-right .btn{padding:9px 14px;font-size:.82rem}.theme,.skin{width:34px;height:34px}}
  @media (max-width:1000px){.books{grid-template-columns:repeat(3,1fr)}}
  @media (max-width:900px){
    .hero-grid,.about-grid{grid-template-columns:1fr}
    .portrait{justify-self:start;max-width:320px}
    .stats,.cards,.events,.books{grid-template-columns:repeat(2,1fr)}
    .stat:nth-child(2){border-right:none}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
    .foot-grid{grid-template-columns:1fr 1fr}
    .menu{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;gap:0;background:var(--bg-2);border-bottom:1px solid var(--line);padding:12px 24px}
    .menu a{padding:12px 0;border-bottom:1px solid var(--line)}
    .menu.open{display:flex}
    .burger{display:block}
    .nav-right .btn{display:none}
  }
  @media (max-width:560px){
    .courses,.stats,.cards,.events,.foot-grid{grid-template-columns:1fr}
    .books{grid-template-columns:repeat(2,1fr)}
    .stat{border-right:none;border-bottom:1px solid var(--line)}
    .pub{grid-template-columns:1fr}
    .cta{padding:44px 24px}
  }
  @media (prefers-reduced-motion:reduce){*{transition:none!important}}

  /* nav active */
  .menu a.active{color:var(--accent)}
  /* BLOG */
  .posts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .post-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:26px;display:flex;flex-direction:column;gap:10px}
  .post-card time{font-size:.85rem;color:var(--ink-3)}
  .post-card h3{font-size:1.2rem}
  .post-card p{font-size:.95rem;flex:1}
  .article{max-width:68ch;margin:0 auto;padding:64px 0}
  .article h1{font-size:clamp(2rem,4.5vw,3rem);font-weight:400;margin:10px 0 24px}
  .article .body p{margin-bottom:18px;font-size:1.08rem;line-height:1.75}
  .article .body h2,.article .body h3{margin:32px 0 12px}
  .article .body ul{margin:0 0 18px 22px;color:var(--ink-2)}
  .article .body a{color:var(--accent);text-decoration:underline}
  /* EBOOK */
  .ebook-grid{display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:start}
  .book{text-decoration:none;position:relative;overflow:hidden}
  .book img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .book .label{position:relative;background:linear-gradient(transparent,rgba(0,0,0,.7));margin:-16px;padding:44px 16px 16px}
  @media (max-width:900px){.posts,.ebook-grid{grid-template-columns:1fr}}

  .portrait img{object-position:center bottom}

  /* PLATFORM CARDS */
  .platforms{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
  .platform-top h3{font-size:1.45rem}
  .platform{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--bg-2);display:flex;flex-direction:column}
  .platform-top{padding:28px;color:#fff}
  .platform-top h3{font-size:1.6rem;color:#fff;margin:0}
  .platform-top span{font-size:.88rem;opacity:.8}
  .platform-body{padding:26px;display:flex;flex-direction:column;gap:14px;flex:1}
  .platform-body .role{font-size:.85rem;color:var(--accent);font-weight:600}
  .platform-body p{font-size:.95rem;margin:0}
  .ticks{list-style:none;display:flex;flex-direction:column;gap:8px;margin:0;padding:0;flex:1}
  .ticks li{position:relative;padding-left:22px;font-size:.92rem;color:var(--ink-2)}
  .ticks li::before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700}
  .platform .btn{align-self:flex-start}
  @media (min-width:1250px){.platforms{grid-template-columns:repeat(4,1fr)}}
  @media (max-width:640px){.platforms{grid-template-columns:1fr}}

  /* RESEARCH CARDS */
  .research-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}
  .research-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:10px}
  .research-top{display:flex;justify-content:space-between;align-items:center}
  .research-top .icon{width:38px;height:38px;border-radius:10px;background:var(--bg-3);display:grid;place-items:center;color:var(--accent);font-size:1.1rem}
  .research-top .status{font-size:.75rem;padding:4px 10px;border-radius:999px;background:var(--bg-3);color:var(--ink-2)}
  .research-card h3{font-size:1.12rem;margin:4px 0 0}
  .research-card p{font-size:.93rem;flex:1;margin:0}
  .research-card .meta{font-size:.8rem;color:var(--accent);font-weight:600;border-top:1px solid var(--line);padding-top:12px}
  @media (max-width:1000px){.research-grid{grid-template-columns:repeat(2,1fr)}}
  @media (max-width:640px){.research-grid{grid-template-columns:1fr}}

  /* ABOUT extras */
  .roles{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}
  .role-item{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--bg-2)}
  .role-item b{display:block;color:var(--accent);font-size:.85rem;margin-bottom:4px}
  .role-item span{font-size:.9rem;color:var(--ink-2)}
  .idlist{list-style:none;margin-top:14px;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);overflow:hidden}
  .idlist li{display:flex;justify-content:space-between;gap:16px;padding:11px 16px;border-bottom:1px solid var(--line);font-size:.9rem}
  .idlist li:last-child{border-bottom:none}
  .idlist span{color:var(--ink-3)}
  .idlist b{font-weight:600;text-align:right;color:var(--ink)}
  @media (max-width:560px){.roles{grid-template-columns:1fr}.idlist li{flex-direction:column;gap:2px}.idlist b{text-align:left}}

  /* CHARTS */
  .charts{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:36px}
  .chart-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:22px 22px 14px;position:relative;overflow:hidden}
  .chart-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
  .chart-card h3{font-size:1rem;font-family:var(--sans);font-weight:600;color:var(--ink-2);margin-bottom:12px}
  .chart-card canvas{width:100%!important;max-height:240px}
  @media (max-width:1100px){.charts{grid-template-columns:1fr 1fr}}
  @media (max-width:640px){.charts{grid-template-columns:1fr}}
  /* REVEAL */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
  .reveal.in{opacity:1;transform:none}
  @media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.hero-bg span{animation:none}}
  /* mobile polish */
  @media (max-width:560px){
    .hero{padding:44px 0 32px}.hero h1{font-size:2.4rem}
    .sec-head{flex-direction:column;align-items:flex-start;gap:8px}
    section{padding:60px 0}
    .portrait{max-width:100%}.portrait .frame{aspect-ratio:1/1}
    .platform-top h3{font-size:1.3rem}
  }

  /* GRANTS & HKI */
  .two-col{display:grid;grid-template-columns:1fr 1fr;gap:32px}
  .muted-line{font-size:.92rem;color:var(--ink-3);margin-bottom:14px}.muted-line b{color:var(--ink)}
  .grant-list{list-style:none;display:flex;flex-direction:column;gap:12px}
  .grant-list li{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:6px;position:relative}
  .grant-list b{font-weight:600;font-size:.98rem;line-height:1.4;padding-right:110px}
  .grant-list small{color:var(--ink-3);font-size:.82rem}
  .g-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .g-year{font-family:var(--serif);font-size:1.1rem;color:var(--accent)}
  .grant-list .badge{font-size:.72rem;padding:3px 9px}
  .b-res{background:rgba(96,165,250,.18);color:#93c5fd}.b-pkm{background:rgba(52,211,153,.18);color:#6ee7b7}.b-hki{background:rgba(251,191,36,.18);color:#fcd34d}
  [data-theme="light"] .b-res{color:#1d4ed8}[data-theme="light"] .b-pkm{color:#047857}[data-theme="light"] .b-hki{color:#b45309}
  .g-fund{position:absolute;top:16px;right:18px;font-weight:700;font-size:.9rem;color:var(--ink)}
  .g-fund.mono{font-family:ui-monospace,Menlo,monospace;font-weight:500;font-size:.8rem;color:var(--ink-2)}
  @media (max-width:900px){.two-col{grid-template-columns:1fr}}
  @media (max-width:560px){.g-fund{position:static;order:5}.grant-list b{padding-right:0}}
  .b-int{background:rgba(251,191,36,.18);color:#fcd34d}[data-theme="light"] .b-int{color:#b45309}

  /* JOURNAL FINDER */
  .hero-sm{padding:56px 0 32px}
  .jf{margin-top:28px;position:relative;z-index:1}
  .jf-search{display:flex;gap:10px}
  .jf-search input{flex:1;padding:14px 18px;border-radius:999px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink);font:inherit;font-size:1rem}
  .jf-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px rgba(167,139,250,.18)}
  .jf-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:12px}
  .jf-filters select{padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink-2);font:inherit;font-size:.9rem}
  .jf-stats{margin-top:32px}
  .jtable-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2)}
  .jtable{width:100%;border-collapse:collapse;font-size:.92rem;min-width:900px}
  .jtable th{text-align:left;padding:14px 16px;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line);background:var(--bg-3)}
  .jtable td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink-2)}
  .jtable tr:last-child td{border-bottom:none}
  .jtable tr:hover td{background:color-mix(in srgb,var(--accent) 6%,transparent)}
  .jtable b{color:var(--ink);font-weight:600}
  .jtable b a:hover{color:var(--accent)}
  .jtable small{font-size:.8rem;color:var(--ink-3)}
  .jtable .mono{font-family:ui-monospace,Menlo,monospace;font-size:.82rem;white-space:nowrap}
  .b-idx{display:inline-block;margin:0 4px 4px 0;font-size:.72rem;padding:3px 8px;background:var(--bg-3);color:var(--ink-2);border-radius:999px}
  .qbadge{display:inline-block;font-weight:700;font-size:.8rem;padding:4px 10px;border-radius:8px;color:#fff}
  .q-q1{background:#16a34a}.q-q2{background:#2563eb}.q-q3{background:#d97706}.q-q4{background:#9333ea}
  .q-s1,.q-s2{background:#0f766e}.q-s3,.q-s4{background:#0e7490}.q-s5,.q-s6{background:#64748b}
  .pager{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:28px;color:var(--ink-3)}
  @media (max-width:560px){.jf-search{flex-direction:column}.jf-search .btn{justify-content:center}}

  /* SCOPUS FINDER */
  .tabs{display:flex;gap:8px;margin-top:26px;position:relative;z-index:1}
  .tabs a{padding:10px 18px;border-radius:999px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink-2);font-size:.9rem;font-weight:600}
  .tabs a.on{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-ink);border-color:transparent}
  .tabs a span{opacity:.75;font-weight:500;margin-left:6px}
  .status-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px;position:relative;z-index:1}
  .status-tabs a{padding:9px 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink-2);font-size:.88rem}
  .status-tabs a b{margin-left:6px;color:var(--ink)}
  .status-tabs a.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
  .status-tabs .st-active.on{border-color:#16a34a;box-shadow:inset 0 0 0 1px #16a34a}
  .status-tabs .st-disc.on{border-color:#dc2626;box-shadow:inset 0 0 0 1px #dc2626}
  .jf-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:28px;align-items:start}
  .subj-side{position:sticky;top:84px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);padding:14px;max-height:calc(100vh - 100px);overflow:auto}
  .subj-side h3{font-family:var(--sans);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:6px 10px}
  .subj-side a{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;font-size:.85rem;color:var(--ink-2)}
  .subj-side a:hover{background:var(--bg-3)}.subj-side a.on{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--ink)}
  .subj-side a span{color:var(--ink-3);font-variant-numeric:tabular-nums}
  .notice{padding:12px 16px;border-radius:12px;background:var(--bg-3);border:1px solid var(--line);font-size:.9rem;color:var(--ink-2);margin-bottom:16px}
  .notice.warn{border-color:rgba(220,38,38,.4);background:rgba(220,38,38,.08)}
  .q-disc{background:#dc2626}.q-off{background:#64748b}
  @media (max-width:900px){.jf-layout{grid-template-columns:1fr}.subj-side{position:static;max-height:220px}}

  /* RANK PILL BAR */
  .rank-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px;padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:var(--bg-2);position:relative;z-index:1}
  .rank-group{display:inline-flex;align-items:center;gap:5px;padding:4px 6px 4px 10px;border-radius:999px;background:var(--bg-3);border:1px solid var(--line)}
  .rank-label{font-size:.68rem;letter-spacing:.08em;font-weight:700;color:var(--ink-3);white-space:nowrap}
  .pill{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink-2);font-size:.82rem;font-weight:600;line-height:1;white-space:nowrap;transition:transform .15s,background .15s}
  .pill:hover{transform:translateY(-1px);border-color:var(--accent)}
  .pill.on{color:#fff;border-color:transparent}
  .pill-q-q1{background:#16a34a}.pill-q-q2{background:#2563eb}.pill-q-q3{background:#d97706}.pill-q-q4{background:#9333ea}
  .pill-a-as{background:#16a34a}.pill-a-a{background:#2563eb}.pill-a-b{background:#d97706}.pill-a-c{background:#64748b}
  .pill-j-4s{background:#16a34a}.pill-j-4{background:#2563eb}.pill-j-3{background:#0891b2}.pill-j-2{background:#d97706}.pill-j-1{background:#64748b}
  .rank-group.empty{opacity:.5}
  .pill.off{cursor:not-allowed;opacity:.6}
  .pill i{font-style:normal;font-size:.7rem;opacity:.7;margin-left:6px;font-weight:500}
  .pill.zero{opacity:.45}
  .rank-hint{font-size:.85rem;color:var(--ink-3);margin-top:10px;position:relative;z-index:1}
  .rank-hint b{color:var(--ink-2)}
  .rank-cell .qbadge{margin:0 4px 4px 0}
  .q-wos{background:#7c3aed}.q-abdc{background:#0f766e}.q-ajg{background:#b45309}
  .rank-bar > .link{margin-left:auto;font-size:.85rem}
  @media (max-width:760px){
    .rank-bar{flex-direction:column;align-items:stretch;gap:8px}
    .rank-group{justify-content:flex-start;flex-wrap:wrap;border-radius:14px}
    .pill{min-width:34px;height:28px;padding:0 10px;font-size:.78rem}
    .rank-bar > .link{margin-left:0;text-align:center}
  }

  /* COVER BUKU */
  .book{position:relative}
  .book .cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
  .book.has-cover .label{position:relative;z-index:1;background:linear-gradient(transparent,rgba(0,0,0,.85))}
  .book.has-cover .book-cat{z-index:1}
  .q-s1{background:#16a34a}.q-s2{background:#2563eb}.q-s3{background:#0891b2}.q-s4{background:#d97706}.q-s5{background:#9333ea}.q-s6{background:#64748b}

  /* GRAFIK DANA HIBAH */
  .fund-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}
  .fund-summary div{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
  .fund-summary b{display:block;font-family:var(--serif);font-size:1.5rem;color:var(--ink);line-height:1.25;margin-bottom:2px}
  .fund-summary span{font-size:.78rem;color:var(--ink-3)}
  .fund-bars{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px;display:flex;flex-direction:column;gap:12px}
  .fund-row{display:grid;grid-template-columns:minmax(0,1fr) 34% auto;gap:10px;align-items:center;font-size:.86rem}
  .fb-label{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .fb-track{height:10px;border-radius:99px;background:var(--bg-3);overflow:hidden}
  .fb-fill{display:block;height:100%;border-radius:99px;transform-origin:left;animation:grow 1s cubic-bezier(.22,1,.36,1) both}
  .fb-res{background:linear-gradient(90deg,#3b82f6,#60a5fa)}
  .fb-pkm{background:linear-gradient(90deg,#059669,#34d399)}
  .fb-val{font-weight:600;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
  .fb-legend{display:flex;gap:18px;font-size:.8rem;color:var(--ink-3);border-top:1px solid var(--line);padding-top:12px;margin-top:4px}
  .fb-legend i{display:inline-block;width:12px;height:8px;border-radius:99px;margin-right:6px}
  @keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  @media (prefers-reduced-motion:reduce){.fb-fill{animation:none}}
  @media (max-width:700px){.fund-summary{grid-template-columns:1fr 1fr}.fund-row{grid-template-columns:1fr auto;row-gap:4px}.fb-track{grid-column:1/-1}}

  /* TIMELINE HIBAH */
  .gtl{list-style:none;position:relative;margin:0;padding:0 0 0 26px}
  .gtl::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,var(--accent),transparent)}
  .gtl-year{position:relative;margin:18px 0 10px;font-family:var(--serif);font-size:1.05rem;color:var(--ink-3)}
  .gtl-year:first-child{margin-top:0}
  .gtl-year span{background:var(--bg);padding-right:8px}
  .gtl-item{position:relative;margin-bottom:12px}
  .gtl-dot{position:absolute;left:-24px;top:20px;width:12px;height:12px;border-radius:50%;border:2px solid var(--bg);background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}
  .is-res .gtl-dot{background:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.22)}
  .is-pkm .gtl-dot{background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.22)}
  .gtl-card{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;padding:16px 18px;transition:transform .2s,border-color .2s,box-shadow .2s}
  .gtl-item:hover .gtl-card{transform:translateX(3px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 18px 40px -28px rgba(120,80,255,.5)}
  .gtl-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
  .gtl-tag{font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:999px}
  .is-res .gtl-tag{background:rgba(59,130,246,.18);color:#93c5fd}
  .is-pkm .gtl-tag{background:rgba(16,185,129,.18);color:#6ee7b7}
  [data-theme="light"] .is-res .gtl-tag{color:#1d4ed8}[data-theme="light"] .is-pkm .gtl-tag{color:#047857}
  .gtl-role{font-size:.75rem;color:var(--ink-3)}
  .gtl-amt{margin-left:auto;font-weight:700;font-size:1rem;color:var(--ink);font-variant-numeric:tabular-nums}
  .gtl-card b{display:block;font-size:.98rem;font-weight:600;line-height:1.45;margin-bottom:10px}
  .gtl-card small{color:var(--ink-3);font-size:.8rem;display:block;margin-top:8px}
  .gtl-meter{height:6px;border-radius:99px;background:var(--bg-3);overflow:hidden}
  .gtl-meter span{display:block;height:100%;border-radius:99px;transform-origin:left;animation:grow 1s cubic-bezier(.22,1,.36,1) both}
  .is-res .gtl-meter span{background:linear-gradient(90deg,#3b82f6,#60a5fa)}
  .is-pkm .gtl-meter span{background:linear-gradient(90deg,#059669,#34d399)}
  @media (max-width:560px){.gtl-amt{margin-left:0;width:100%}}

  /* KARTU HKI */
  .hki-grid{display:grid;gap:12px}
  .hki-card{position:relative;background:var(--bg-2);border:1px solid var(--line);border-radius:16px;padding:16px 18px 16px 58px;transition:transform .2s,border-color .2s,box-shadow .2s}
  .hki-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 18px 40px -28px rgba(120,80,255,.5)}
  .hki-icon{position:absolute;left:16px;top:16px;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:1rem;font-weight:700;background:rgba(251,191,36,.16);color:#fbbf24}
  .is-pending .hki-icon{background:rgba(167,139,250,.18);color:var(--accent)}
  .hki-top{display:flex;gap:8px;align-items:center;margin-bottom:6px}
  .hki-year{font-family:var(--serif);font-size:1.05rem;color:var(--accent)}
  .hki-status{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:999px;background:rgba(251,191,36,.16);color:#fbbf24}
  .is-pending .hki-status{background:rgba(167,139,250,.18);color:var(--accent)}
  [data-theme="light"] .hki-status{color:#b45309}[data-theme="light"] .is-pending .hki-status{color:#6d4ed8}
  .hki-card b{display:block;font-size:.96rem;font-weight:600;line-height:1.45;margin-bottom:6px}
  .hki-card small{color:var(--ink-3);font-size:.82rem;display:block}
  .hki-no{display:inline-block;margin-top:8px;font-family:ui-monospace,Menlo,monospace;font-size:.75rem;color:var(--ink-2);background:var(--bg-3);padding:3px 8px;border-radius:6px}

  /* ============ NUANSA MELAYU RIAU ============ */
  [data-skin="melayu"]{
    --bg:#120a06; --bg-2:#1c1009; --bg-3:#2a1a0e;
    --ink:#f7efdf; --ink-2:#d9c7a5; --ink-3:#a08a67;
    --line:rgba(212,175,94,.20);
    --accent:#d4af5e; --accent-2:#2f9e6f; --accent-ink:#1a1005;
  }
  [data-skin="melayu"][data-theme="light"]{
    --bg:#fdf8ee; --bg-2:#f7efdd; --bg-3:#efe3c9;
    --ink:#2a1c0c; --ink-2:#5c4527; --ink-3:#8b7350;
    --line:rgba(122,84,26,.18);
    --accent:#9a6b1f; --accent-2:#0f7a52; --accent-ink:#fffdf7;
  }
  /* pita tumpal (motif segitiga songket) di bawah navbar & atas footer */
  [data-skin="melayu"] header{border-bottom:none;box-shadow:0 2px 0 0 var(--line)}
  [data-skin="melayu"] header::after,[data-skin="melayu"] footer::before{
    content:"";display:block;height:10px;
    background:
      linear-gradient(135deg,var(--accent) 25%,transparent 25%) 0 0/16px 16px,
      linear-gradient(225deg,var(--accent) 25%,transparent 25%) 0 0/16px 16px,
      linear-gradient(90deg,var(--accent-2),var(--accent),var(--accent-2));
    opacity:.55}
  [data-skin="melayu"] footer{position:relative;border-top:none}
  [data-skin="melayu"] footer::before{position:absolute;top:0;left:0;right:0}
  /* anyaman halus pada latar hero & seksi CTA */
  [data-skin="melayu"] .hero::after{
    background-image:
      repeating-linear-gradient(45deg,var(--line) 0 1px,transparent 1px 18px),
      repeating-linear-gradient(-45deg,var(--line) 0 1px,transparent 1px 18px);
    background-size:auto;opacity:.45}
  [data-skin="melayu"] .cta{background:linear-gradient(135deg,var(--bg-3),var(--bg-2));border-color:var(--accent)}
  [data-skin="melayu"] .cta::after{background:radial-gradient(ellipse,rgba(212,175,94,.25),transparent 65%)}
  /* ornamen selembayung di atas judul seksi */
  [data-skin="melayu"] .kicker{display:flex;align-items:center;gap:8px}
  [data-skin="melayu"] .kicker::before{content:"";width:34px;height:8px;flex:none;opacity:.9;
    background:linear-gradient(90deg,var(--accent),var(--accent-2));
    clip-path:polygon(0 100%,16.6% 0,33.3% 100%,50% 0,66.6% 100%,83.3% 0,100% 100%)}
  [data-skin="melayu"] .sec-head h2::after{content:"";display:block;width:52px;height:3px;margin-top:10px;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
  [data-skin="melayu"] .card,[data-skin="melayu"] .research-card,[data-skin="melayu"] .platform,[data-skin="melayu"] .event,[data-skin="melayu"] .gtl-card,[data-skin="melayu"] .hki-card,[data-skin="melayu"] .stats,[data-skin="melayu"] .chart-card{border-color:var(--line)}
  [data-skin="melayu"] .portrait .frame{border-radius:22px 22px 0 0;box-shadow:0 40px 80px -40px rgba(212,175,94,.45)}
  [data-skin="melayu"] .btn-primary{box-shadow:0 10px 30px -12px rgba(212,175,94,.8)}
  [data-skin="melayu"] .book,[data-skin="melayu"] .platform-top{position:relative}
  [data-skin="melayu"] .platform-top::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;
    background:linear-gradient(135deg,var(--accent) 25%,transparent 25%) 0 0/12px 12px,linear-gradient(225deg,var(--accent) 25%,transparent 25%) 0 0/12px 12px;opacity:.8}
  /* tombol pilih nuansa */
  .skin{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;font-size:.95rem;line-height:1}
  .skin.on{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-ink);border-color:transparent}
  @media (max-width:900px){.skin{margin-right:2px}}
