:root{
  --ink:#08080A; --ink-soft:#101014; --surface:#131318;
  --line:rgba(255,255,255,0.08); --line-bold:rgba(255,255,255,0.16);
  --text:#e9e9ec; --text-mute:#a0a0a8; --text-soft:#6f6f78;
  --jewel:#efa022; --jewel-2:#f6c85a; --jewel-glow:rgba(239,160,34,0.32); --jewel-dim:rgba(239,160,34,0.08);
  --serif:'Instrument Serif',Georgia,serif;
  --sans:'Geist',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:'Geist Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --ease:cubic-bezier(.22,.61,.36,1);
}
/* Brand fonts — drop woff2 in static/fonts/ and uncomment for the exact match.
@font-face{ font-family:'Geist'; font-weight:300 900; font-display:swap; src:url('/research/fonts/geist-latin.woff2') format('woff2'); }
@font-face{ font-family:'Geist Mono'; font-weight:400 600; font-display:swap; src:url('/research/fonts/geistmono-latin.woff2') format('woff2'); }
@font-face{ font-family:'Instrument Serif'; font-weight:400; font-style:italic; font-display:swap; src:url('/research/fonts/instrumentserif-italic-latin.woff2') format('woff2'); }
@font-face{ font-family:'Noto Sans Devanagari'; font-weight:300 700; font-display:swap; src:url('/research/fonts/noto-devanagari.woff2') format('woff2'); }
@font-face{ font-family:'Noto Naskh Arabic'; font-weight:400 700; font-display:swap; src:url('/research/fonts/noto-arabic.woff2') format('woff2'); }
@font-face{ font-family:'Noto Sans SC'; font-weight:300 700; font-display:swap; src:url('/research/fonts/noto-sc.woff2') format('woff2'); }
*/
*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{ margin:0; background:var(--ink); color:var(--text); font-family:var(--sans); font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
html[lang^="hi"] body{ font-family:'Noto Sans Devanagari','Nirmala UI',var(--sans); }
html[lang="ar"] body{ font-family:'Noto Naskh Arabic','Noto Sans Arabic','Segoe UI',var(--sans); font-size:18px; }
html[lang^="zh"] body{ font-family:'Noto Sans SC','PingFang SC','Microsoft YaHei',var(--sans); }
a{ color:inherit; }
img{ max-width:100%; height:auto; }
::selection{ background:var(--jewel); color:#140d02; }
:focus-visible{ outline:2px solid var(--jewel); outline-offset:3px; border-radius:3px; }
*::-webkit-scrollbar{ width:12px; height:12px; }
*::-webkit-scrollbar-thumb{ background:#26262c; border:3px solid var(--ink); border-radius:20px; }
*::-webkit-scrollbar-thumb:hover{ background:#34343c; }
html{ scrollbar-color:#26262c var(--ink); }
.rn-wrap{ max-width:760px; margin:0 auto; padding:0 24px; }

/* reading-progress bar */
.rn-progress{ position:fixed; top:0; left:0; height:2px; width:0; z-index:100; background:linear-gradient(90deg,var(--jewel),var(--jewel-2)); box-shadow:0 0 12px var(--jewel-glow); transition:width .08s linear; }

/* nav */
.rn-nav{ position:sticky; top:0; z-index:30; background:rgba(8,8,10,0.7); backdrop-filter:blur(16px) saturate(140%); -webkit-backdrop-filter:blur(16px) saturate(140%); border-bottom:1px solid var(--line); }
.rn-nav-inner{ max-width:1080px; margin:0 auto; padding:14px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.rn-brand{ text-decoration:none; display:inline-flex; align-items:center; gap:10px; min-width:0; }
.rn-brand-logo{ display:block; width:auto; height:34px; max-width:154px; object-fit:contain; flex:0 0 auto; }
.rn-brand-section{ color:var(--jewel); font-family:var(--serif); font-style:italic; font-size:1.16rem; line-height:1; white-space:nowrap; }
.rn-nav-right{ display:flex; align-items:center; gap:16px; font-size:14px; }
.rn-lang{ position:relative; }
.rn-lang > summary{ list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--text-mute); padding:5px 11px; border:1px solid var(--line); border-radius:8px; transition:color .2s,border-color .2s; white-space:nowrap; }
.rn-lang > summary::-webkit-details-marker{ display:none; }
.rn-lang > summary::after{ content:"▾"; font-size:9px; color:var(--text-soft); }
.rn-lang > summary:hover,.rn-lang[open] > summary{ color:var(--text); border-color:var(--line-bold); }
.rn-lang-menu{ position:absolute; top:calc(100% + 6px); right:0; min-width:150px; background:#0f0f14; border:1px solid var(--line-bold); border-radius:10px; padding:6px; display:flex; flex-direction:column; gap:2px; z-index:60; box-shadow:0 24px 48px -24px rgba(0,0,0,.85); }
.rn-lang-menu a{ padding:8px 12px; border-radius:6px; font-size:13px; color:var(--text-mute); text-decoration:none; transition:background .15s,color .15s; }
.rn-lang-menu a:hover{ background:rgba(255,255,255,0.05); color:var(--text); }
.rn-lang-menu a.active{ color:var(--jewel); }
[dir="rtl"] .rn-lang-menu{ right:auto; left:0; }
.rn-back{ color:var(--text-mute); text-decoration:none; transition:color .2s; }
.rn-back:hover{ color:var(--text); }
.rn-cta{ color:#140d02; background:linear-gradient(180deg,var(--jewel-2),var(--jewel)); padding:8px 15px; border-radius:9px; text-decoration:none; font-weight:600; white-space:nowrap; transition:transform .2s var(--ease),box-shadow .2s; box-shadow:0 0 0 rgba(239,160,34,0); }
.rn-cta:hover{ transform:translateY(-1px); box-shadow:0 8px 24px -8px var(--jewel-glow); }

/* hero — alive */
.rn-hero{ position:relative; overflow:hidden; padding:96px 0 56px; border-bottom:1px solid var(--line); --mx:50%; --my:40%; }
.rn-hero::before{ content:""; position:absolute; inset:-40% -10% auto -10%; height:120%; background:
  radial-gradient(60% 60% at var(--mx) var(--my), rgba(239,160,34,0.16), transparent 70%),
  radial-gradient(50% 50% at 80% 0%, rgba(239,160,34,0.10), transparent 70%);
  filter:blur(6px); animation:heroDrift 26s ease-in-out infinite alternate; pointer-events:none; }
.rn-hero::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:48px 48px; mask-image:radial-gradient(70% 80% at 30% 30%,#000,transparent 75%); -webkit-mask-image:radial-gradient(70% 80% at 30% 30%,#000,transparent 75%); opacity:.5; }
@keyframes heroDrift{ from{ transform:translate3d(-2%,-1%,0) scale(1); } to{ transform:translate3d(3%,2%,0) scale(1.08); } }
.rn-hero .rn-wrap{ position:relative; z-index:1; }
.rn-eyebrow{ font-family:var(--mono); font-size:12px; letter-spacing:0.16em; text-transform:uppercase; color:var(--jewel); margin:0 0 16px; display:inline-flex; align-items:center; gap:8px; }
.rn-blink{ display:inline-block; width:8px; height:15px; background:var(--jewel); animation:blink 1.15s steps(1) infinite; box-shadow:0 0 8px var(--jewel-glow); }
@keyframes blink{ 50%{ opacity:0; } }
.rn-hero h1{ font-size:clamp(38px,6vw,64px); line-height:1.02; letter-spacing:-0.025em; margin:0 0 16px; }
.rn-hero h1 em{ font-family:var(--serif); font-style:italic; color:var(--jewel); font-weight:400; }
.rn-tagline{ color:var(--text-mute); font-size:19px; max-width:56ch; margin:0; }

/* blocks */
.rn-block{ padding:52px 0; }
.rn-block>h2{ font-size:14px; font-family:var(--mono); letter-spacing:0.12em; text-transform:uppercase; color:var(--text-soft); margin:0 0 22px; }

/* post cards */
.rn-list{ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.rn-list li{ position:relative; }
.rn-list li a{ display:block; text-decoration:none; padding:24px 26px; border:1px solid var(--line); border-radius:14px; background:linear-gradient(180deg,rgba(255,255,255,0.015),transparent); transition:transform .28s var(--ease),border-color .28s,background .28s; overflow:hidden; }
.rn-list li a::before{ content:""; position:absolute; left:0; top:16px; bottom:16px; width:2px; background:var(--jewel); border-radius:2px; transform:scaleY(0); transform-origin:top; transition:transform .3s var(--ease); }
.rn-list li a::after{ content:"→"; position:absolute; right:24px; top:24px; color:var(--jewel); opacity:0; transform:translateX(-6px); transition:opacity .28s,transform .28s var(--ease); font-family:var(--mono); }
.rn-list li a:hover{ transform:translateY(-3px); border-color:var(--jewel-glow); background:linear-gradient(180deg,rgba(239,160,34,0.04),transparent); }
.rn-list li a:hover::before{ transform:scaleY(1); }
.rn-list li a:hover::after{ opacity:1; transform:translateX(0); }
.rn-list li a:hover h3{ color:var(--jewel-2); }
.rn-series{ font-family:var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--jewel); }
.rn-list h3{ font-size:22px; letter-spacing:-0.015em; margin:8px 0 9px; transition:color .2s; padding-right:30px; }
.rn-list p{ color:var(--text-mute); font-size:15px; margin:0 0 10px; }
.rn-meta{ font-family:var(--mono); font-size:12px; color:var(--text-soft); }
.rn-empty{ color:var(--text-soft); padding:22px 0; }

/* series grid */
.rn-series-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(168px,1fr)); gap:12px; }
.rn-series-card{ border:1px solid var(--line); border-radius:12px; padding:20px; text-decoration:none; display:flex; justify-content:space-between; align-items:baseline; transition:transform .25s var(--ease),border-color .25s,background .25s; }
.rn-series-card:hover{ border-color:var(--jewel-glow); transform:translateY(-2px); background:var(--jewel-dim); }
.rn-series-card h3{ font-size:16px; margin:0; letter-spacing:-0.01em; }
.rn-series-card span{ font-family:var(--mono); color:var(--jewel); font-size:13px; }

/* scroll-reveal */
[data-reveal]{ opacity:0; transform:translateY(18px); transition:opacity .6s var(--ease),transform .6s var(--ease); }
[data-reveal].is-visible{ opacity:1; transform:none; }

/* article */
.rn-article{ padding:60px 0 40px; }
.rn-crumb{ font-family:var(--mono); font-size:12px; text-transform:uppercase; letter-spacing:0.05em; color:var(--text-soft); margin:0 0 18px; }
.rn-crumb a{ color:var(--text-soft); transition:color .2s; }
.rn-crumb a:hover{ color:var(--jewel); }
.rn-article>h1{ font-size:clamp(32px,5vw,50px); line-height:1.07; letter-spacing:-0.025em; margin:0 0 16px; }
.rn-article-meta{ font-family:var(--mono); font-size:12.5px; color:var(--text-soft); margin:0 0 26px; }
.rn-content{ font-size:18px; line-height:1.78; }
.rn-content>p:first-of-type::first-letter{ font-family:var(--serif); font-style:italic; font-size:3.6em; line-height:.82; float:left; margin:6px 12px 0 0; color:var(--jewel); }
.rn-content h2{ font-size:27px; letter-spacing:-0.015em; margin:48px 0 14px; }
.rn-content h3{ font-size:20px; margin:34px 0 10px; }
.rn-content p{ margin:0 0 22px; }
.rn-content a{ color:var(--jewel); text-decoration:none; background-image:linear-gradient(var(--jewel),var(--jewel)); background-size:100% 1px; background-position:0 100%; background-repeat:no-repeat; transition:background-size .25s var(--ease); padding-bottom:1px; }
.rn-content a:hover{ background-size:100% 2px; }
.rn-content ul,.rn-content ol{ padding-left:22px; margin:0 0 22px; }
.rn-content li{ margin:7px 0; }
.rn-content li::marker{ color:var(--jewel); }
.rn-content code{ font-family:var(--mono); font-size:0.88em; background:var(--ink-soft); padding:2px 6px; border-radius:5px; border:1px solid var(--line); }
.rn-content pre{ position:relative; background:#0c0c10; border:1px solid var(--line); border-radius:12px; padding:44px 20px 18px; overflow-x:auto; margin:0 0 26px; box-shadow:0 20px 40px -30px rgba(0,0,0,.9); }
.rn-content pre::before{ content:"● ● ●"; position:absolute; top:13px; left:18px; font-size:9px; letter-spacing:3px; color:#3a3a42; }
.rn-content pre code{ background:none; border:none; padding:0; font-size:14px; line-height:1.7; }
.rn-copy{ position:absolute; top:9px; right:10px; font-family:var(--mono); font-size:11px; color:var(--text-soft); background:rgba(255,255,255,0.04); border:1px solid var(--line); border-radius:6px; padding:4px 9px; cursor:pointer; opacity:0; transition:opacity .2s,color .2s,border-color .2s; }
.rn-content pre:hover .rn-copy{ opacity:1; }
.rn-copy:hover{ color:var(--text); border-color:var(--line-bold); }
.rn-copy.copied{ color:var(--jewel); border-color:var(--jewel-glow); opacity:1; }
.rn-content blockquote{ border-left:2px solid var(--jewel-glow); margin:0 0 24px; padding:6px 0 6px 22px; color:var(--text-mute); font-family:var(--serif); font-style:italic; font-size:1.28em; line-height:1.5; }
.rn-content img{ border-radius:12px; border:1px solid var(--line); }
.rn-content hr{ border:none; height:1px; background:var(--line); margin:40px 0; }
.rn-article-cta{ margin-top:48px; padding-top:32px; border-top:1px solid var(--line); }

/* breadcrumb */
.rn-crumb{ font-family:var(--mono); font-size:12px; letter-spacing:.04em; margin:0 0 18px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.rn-crumb a{ color:var(--text-mute); text-decoration:none; transition:color .2s; }
.rn-crumb a:hover{ color:var(--jewel); }
.rn-crumb-sep{ color:var(--line-bold); }
.rn-crumb [aria-current="page"]{ color:var(--text); }

/* TL;DR / key takeaways answer box */
.rn-tldr{ background:linear-gradient(180deg, rgba(230,180,90,0.06), rgba(230,180,90,0.02)); border:1px solid var(--line); border-left:3px solid var(--jewel); border-radius:12px; padding:20px 24px; margin:0 0 34px; }
.rn-tldr-label{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--jewel); margin:0 0 12px; }
.rn-tldr ul{ margin:0; padding:0; list-style:none; display:grid; gap:10px; }
.rn-tldr li{ position:relative; padding-left:22px; color:var(--text); line-height:1.6; font-size:.98em; }
.rn-tldr li::before{ content:""; position:absolute; left:2px; top:.62em; width:6px; height:6px; border-radius:50%; background:var(--jewel); }
.rn-tldr li a{ color:var(--jewel); }
[dir="rtl"] .rn-tldr{ border-left:1px solid var(--line); border-right:3px solid var(--jewel); }
[dir="rtl"] .rn-tldr li{ padding-left:0; padding-right:22px; }
[dir="rtl"] .rn-tldr li::before{ left:auto; right:2px; }

/* FAQ accordion */
.rn-faq{ margin-top:48px; padding-top:32px; border-top:1px solid var(--line); }
.rn-faq h2,.rn-related h2{ font-size:1.5em; margin:0 0 20px; letter-spacing:-.01em; }
.rn-faq-item{ border:1px solid var(--line); border-radius:12px; margin:0 0 12px; background:rgba(255,255,255,0.015); overflow:hidden; transition:border-color .2s; }
.rn-faq-item[open]{ border-color:var(--line-bold); }
.rn-faq-item summary{ cursor:pointer; padding:16px 48px 16px 20px; font-weight:600; color:var(--text); list-style:none; position:relative; transition:color .2s; }
.rn-faq-item summary::-webkit-details-marker{ display:none; }
.rn-faq-item summary::after{ content:"+"; position:absolute; right:20px; top:50%; transform:translateY(-50%); font-size:20px; line-height:1; color:var(--jewel); transition:transform .2s; }
.rn-faq-item[open] summary::after{ transform:translateY(-50%) rotate(45deg); }
.rn-faq-item summary:hover{ color:var(--jewel); }
.rn-faq-a{ padding:0 20px 18px; color:var(--text-mute); line-height:1.7; }
.rn-faq-a p{ margin:0 0 10px; }
.rn-faq-a p:last-child{ margin-bottom:0; }
.rn-faq-a a{ color:var(--jewel); }

/* related */
.rn-related{ margin-top:48px; padding-top:32px; border-top:1px solid var(--line); }
.rn-article-meta time{ color:var(--text-mute); }
[dir="rtl"] .rn-faq-item summary{ padding:16px 20px 16px 48px; }
[dir="rtl"] .rn-faq-item summary::after{ right:auto; left:20px; }

/* footer */
.rn-footer{ border-top:1px solid var(--line); margin-top:48px; }
.rn-footer .rn-nav-inner{ font-size:13px; color:var(--text-soft); flex-wrap:wrap; gap:10px; }
.rn-footer a{ color:var(--text-mute); text-decoration:none; transition:color .2s; }
.rn-footer a:hover{ color:var(--jewel); }

/* RTL */
[dir="rtl"] .rn-list li a{ padding:24px 26px; }
[dir="rtl"] .rn-list li a::before{ left:auto; right:0; }
[dir="rtl"] .rn-list li a::after{ right:auto; left:24px; content:"←"; transform:translateX(6px); }
[dir="rtl"] .rn-list li a:hover::after{ transform:translateX(0); }
[dir="rtl"] .rn-list h3{ padding-right:0; padding-left:30px; }
[dir="rtl"] .rn-content>p:first-of-type::first-letter{ float:right; margin:6px 0 0 12px; }
[dir="rtl"] .rn-content ul,[dir="rtl"] .rn-content ol{ padding-left:0; padding-right:22px; }
[dir="rtl"] .rn-content blockquote{ border-left:none; border-right:2px solid var(--jewel-glow); padding:6px 22px 6px 0; }
[dir="rtl"] .rn-content pre{ direction:ltr; text-align:left; }
[dir="rtl"] .rn-copy{ right:auto; left:10px; }
[dir="rtl"] .rn-content pre::before{ left:auto; right:18px; }

@media (max-width:640px){
  .rn-nav-right{ gap:10px; font-size:13px; }
  .rn-brand-logo{ height:28px; max-width:128px; }
  .rn-brand-section{ font-size:1rem; }
  .rn-back{ display:none; }
  body{ font-size:16px; }
  .rn-hero{ padding:64px 0 40px; }
  .rn-list li a{ padding:20px; }
  .rn-list li a::after{ display:none; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none !important; transition:none !important; }
  [data-reveal]{ opacity:1; transform:none; }
  .rn-blink{ opacity:1; }
}
