@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800;900&family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&display=swap');

:root{
  --navy:#0E1B2E; --navy-2:#13243B; --navy-deep:#091220; --ink:#16202E;
  --slate:#4A5666; --slate-2:#6A7585; --ivory:#FAF7F0; --paper:#FCFCFA;
  --line:#E4E2DA; --gold:#A8812B; --gold-soft:#C6A24C;
  --teal:#1F7A6E; --teal-soft:#3DA597; --steel:#6F93BE; --sand:#C98B5A;
  --on-navy:#C7D3E1; --on-navy-soft:#93A3B8;
  --teal:#2E8B9E; --teal-soft:#5BB0C0; --green:#41A06E; --rust:#C07A3A; --blue:#7FA8E0;
  --shadow:0 24px 60px -32px rgba(9,18,32,.55);
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; font-family:"IBM Plex Sans",system-ui,sans-serif; color:var(--slate); line-height:1.62; font-size:17px; background:var(--paper); overflow-x:hidden; }
h1,h2,h3,h4{ font-family:"Archivo",sans-serif; color:var(--ink); line-height:1.08; letter-spacing:-.015em; margin:0; }
h2{ font-size:clamp(1.9rem,3.4vw,2.9rem); }
h3{ font-size:1.3rem; letter-spacing:-.01em; }
p{ margin:0; }
a{ text-decoration:none; color:inherit; }
img{ max-width:100%; display:block; }
.wrap{ max-width:1220px; margin:0 auto; padding:0 clamp(20px,5vw,56px); position:relative; z-index:2; }
.eyebrow{ font-family:"IBM Plex Mono",monospace; font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); }
.lede{ font-size:clamp(1.04rem,1.45vw,1.22rem); line-height:1.55; }
.sec{ padding:clamp(58px,7.5vw,108px) 0; position:relative; overflow:hidden; }
.actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; }

/* ---- backgrounds (code-generated, parallax) ---- */
.bg{ position:absolute; inset:-20% 0 -20% 0; z-index:0; pointer-events:none; will-change:transform; }
.bg--navy{ background:
    radial-gradient(1000px 520px at 80% -8%, rgba(168,129,43,.18), transparent 60%),
    radial-gradient(760px 460px at 12% 108%, rgba(46,139,158,.17), transparent 62%),
    radial-gradient(720px 520px at 50% 55%, rgba(127,168,224,.10), transparent 70%),
    linear-gradient(180deg,var(--navy) 0%, var(--navy-2) 100%); }
.bg--navy::before{ content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:58px 58px; -webkit-mask-image:radial-gradient(circle at 50% 40%,#000,transparent 85%); mask-image:radial-gradient(circle at 50% 40%,#000,transparent 85%); }
.bg--navy::after{ content:""; position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cg fill='none' stroke='%23C6A24C' stroke-opacity='0.06' stroke-width='1'%3E%3Cpath d='M0 80 Q100 40 200 80 T400 80'/%3E%3Cpath d='M0 160 Q100 120 200 160 T400 160'/%3E%3Cpath d='M0 240 Q100 200 200 240 T400 240'/%3E%3Cpath d='M0 320 Q100 280 200 320 T400 320'/%3E%3C/g%3E%3C/svg%3E"); }
.bg--ivory{ background:
    radial-gradient(720px 420px at 92% 0%, rgba(46,139,158,.06), transparent 60%),
    radial-gradient(640px 420px at 0% 100%, rgba(168,129,43,.07), transparent 60%),
    linear-gradient(180deg,var(--paper),var(--ivory)); }
.bg--ivory::before{ content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(74,86,102,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(74,86,102,.045) 1px,transparent 1px);
  background-size:46px 46px; -webkit-mask-image:radial-gradient(circle at 70% 30%,#000,transparent 90%); mask-image:radial-gradient(circle at 70% 30%,#000,transparent 90%); opacity:.7; }
.navy-text h1,.navy-text h2,.navy-text h3,.navy-text h4{ color:#fff; }
.navy-text p{ color:var(--on-navy); } .navy-text .eyebrow{ color:var(--gold-soft); }

/* ---- buttons ---- */
.btn{ display:inline-flex; align-items:center; gap:.5em; font-family:"IBM Plex Mono",monospace; font-size:.76rem; font-weight:500; letter-spacing:.09em; text-transform:uppercase; padding:.92em 1.5em; border-radius:3px; border:1px solid transparent; cursor:pointer; transition:.18s; }
.btn--gold{ background:var(--gold); color:#1a1305; border-color:var(--gold); }
.btn--gold:hover{ background:var(--gold-soft); border-color:var(--gold-soft); transform:translateY(-2px); }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn--ghost:hover{ border-color:var(--ink); }
.btn--onnavy{ background:transparent; color:#fff; border-color:rgba(255,255,255,.32); }
.btn--onnavy:hover{ border-color:var(--gold-soft); color:var(--gold-soft); }
.btn--teal{ background:var(--teal); color:#fff; border-color:var(--teal); }
.btn--teal:hover{ background:var(--teal-soft); border-color:var(--teal-soft); transform:translateY(-2px); }
.live{ display:inline-flex; align-items:center; gap:8px; color:var(--teal-soft); }
.live::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--teal-soft); box-shadow:0 0 0 0 rgba(61,165,151,.55); animation:pulse 2.2s infinite; }
.dot{ display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--teal-soft); margin-right:7px; box-shadow:0 0 0 0 rgba(61,165,151,.55); animation:pulse 2.2s infinite; vertical-align:middle; }
@keyframes pulse{ 0%{box-shadow:0 0 0 0 rgba(61,165,151,.5);} 70%{box-shadow:0 0 0 9px rgba(61,165,151,0);} 100%{box-shadow:0 0 0 0 rgba(61,165,151,0);} }
@media(prefers-reduced-motion:reduce){ .live::before,.dot,.brand .mark .mark-img{ animation:none; } }
.link{ font-family:"IBM Plex Mono",monospace; font-size:.8rem; letter-spacing:.04em; color:var(--gold); border-bottom:1px solid transparent; padding-bottom:2px; }
.navy-text .link{ color:var(--gold-soft); } .link:hover{ border-color:currentColor; }

/* ---- reveal animation ---- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } .bg{ transform:none!important; } html{ scroll-behavior:auto; } }

/* ---- top bar ---- */
.topbar{ background:var(--navy-deep); color:var(--on-navy-soft); font-family:"IBM Plex Mono",monospace; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; }
.topbar .row{ max-width:1280px; margin:0 auto; padding:7px clamp(20px,5vw,56px); display:flex; align-items:center; justify-content:flex-end; gap:20px; }
.topbar button,.topbar a{ background:none; border:0; color:var(--on-navy-soft); cursor:pointer; font:inherit; letter-spacing:inherit; transition:.15s; display:inline-flex; align-items:center; gap:6px; }
.topbar button:hover,.topbar a:hover{ color:#fff; }
.topbar .soon{ opacity:.5; cursor:default; }
.topbar .donate{ color:var(--gold-soft); }
.topbar .sep{ width:1px; height:13px; background:rgba(255,255,255,.14); }

/* ---- header ---- */
.hdr{ position:sticky; top:0; z-index:60; background:rgba(252,252,250,.9); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); transition:padding .25s; }
.hdr .row{ max-width:1280px; margin:0 auto; padding:16px clamp(20px,5vw,56px); display:flex; align-items:center; justify-content:space-between; gap:24px; transition:padding .25s; }
.hdr.shrink .row{ padding-top:9px; padding-bottom:9px; }
.brand{ display:flex; align-items:center; gap:12px; }
.brand .mark{ width:56px; height:56px; flex:none; transition:.25s; display:block; position:relative; }
.brand .mark .mark-img{ width:100%; height:100%; object-fit:contain; }
.brand .mark .mark-svg{ width:100%; height:100%; }
.hdr.shrink .brand .mark{ width:46px; height:46px; }
.brand .name{ font-family:"Archivo",sans-serif; font-weight:800; font-size:1.14rem; color:var(--ink); line-height:1; }
.brand .sub{ font-family:"IBM Plex Mono",monospace; font-size:.55rem; letter-spacing:.2em; text-transform:uppercase; color:var(--slate-2); margin-top:4px; }
.nav{ display:flex; align-items:center; gap:4px; margin:0; padding:0; }
.nav>li{ list-style:none; position:relative; }
.nav>li>a{ display:block; padding:10px 15px; font-size:.93rem; color:var(--slate); border-radius:5px; cursor:pointer; transition:.15s; }
.nav>li>a:hover,.nav>li.open>a{ color:var(--ink); background:rgba(74,86,102,.06); }
.nav>li>a .chev{ font-size:.6rem; opacity:.6; margin-left:4px; }
.sub{ position:absolute; top:calc(100% + 8px); left:0; min-width:230px; background:#fff; border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); padding:8px; opacity:0; visibility:hidden; transform:translateY(8px); transition:.18s; }
.nav>li:hover .sub{ opacity:1; visibility:visible; transform:none; }
.sub a{ display:block; padding:9px 12px; font-size:.9rem; color:var(--slate); border-radius:5px; }
.sub a:hover{ background:var(--ivory); color:var(--ink); }
.nav-cta{ margin-left:8px; }
.burger{ display:none; background:none; border:0; font-size:1.5rem; color:var(--ink); cursor:pointer; }
@media(max-width:1024px){
  .nav,.nav-cta{ display:none; }
  .burger{ display:block; }
  .nav.mobile{ display:flex; position:fixed; inset:0 0 0 auto; width:min(86vw,360px); flex-direction:column; align-items:stretch; gap:2px; background:#fff; padding:90px 20px 30px; box-shadow:var(--shadow); overflow:auto; z-index:55; }
  .nav.mobile>li>a{ padding:13px 12px; font-size:1rem; }
  .nav.mobile .sub{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; border-left:2px solid var(--line); border-radius:0; margin:0 0 6px 12px; }
}
.scrim{ position:fixed; inset:0; background:rgba(9,18,32,.45); z-index:54; opacity:0; visibility:hidden; transition:.2s; }
.scrim.show{ opacity:1; visibility:visible; }

/* ---- hero ---- */
.hero{ min-height:92vh; display:flex; align-items:center; padding:120px 0 90px; }
.hero .watermark{ position:absolute; right:-3%; bottom:-22%; font-family:"Archivo",sans-serif; font-weight:900; font-size:clamp(18rem,34vw,42rem); color:rgba(255,255,255,.025); line-height:.8; z-index:1; pointer-events:none; }
.herogrid{ display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(34px,5vw,76px); align-items:center; }
@media(max-width:920px){ .herogrid{ grid-template-columns:1fr; } .hero{ min-height:auto; } }
.hero h1{ margin-top:18px; font-size:clamp(2.3rem,4.4vw,3.9rem); max-width:15ch; font-weight:800; text-wrap:balance; }
.hero .lede{ margin-top:24px; max-width:52ch; }
.papercard{ border:1px solid rgba(255,255,255,.13); border-radius:14px; background:rgba(255,255,255,.045); backdrop-filter:blur(4px); padding:22px; display:grid; grid-template-columns:120px 1fr; gap:22px; align-items:start; box-shadow:var(--shadow); }
@media(max-width:480px){ .papercard{ grid-template-columns:1fr; } }
.papercard img{ border-radius:7px; box-shadow:0 14px 30px -16px rgba(0,0,0,.6); }
.papercard h3{ color:#fff; font-size:1.1rem; margin:9px 0; }
.papercard p{ font-size:.92rem; }
.tags{ display:flex; flex-wrap:wrap; gap:7px; margin-top:14px; }
.tag{ font-family:"IBM Plex Mono",monospace; font-size:.6rem; letter-spacing:.05em; text-transform:uppercase; padding:.38em .66em; border:1px solid rgba(255,255,255,.22); border-radius:100px; color:#C7D3E1; }

/* ---- stat strip ---- */
.strip{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.14); }
.strip .cell{ padding:24px clamp(14px,2.4vw,30px); border-left:1px solid rgba(255,255,255,.14); }
.strip .cell:first-child{ border-left:0; }
.strip .num{ font-family:"Archivo",sans-serif; font-weight:800; font-size:2rem; color:var(--gold-soft); }
.strip .lab{ font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.04em; text-transform:uppercase; color:var(--on-navy-soft); margin-top:6px; }
@media(max-width:680px){ .strip{ grid-template-columns:1fr 1fr; } .strip .cell:nth-child(3){ border-left:0; } }

/* ---- about ---- */
.about{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(32px,5vw,68px); align-items:center; }
@media(max-width:820px){ .about{ grid-template-columns:1fr; } }
.portrait{ position:relative; border-radius:12px; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4/5; background:linear-gradient(160deg,var(--navy-2),var(--navy)); }
.portrait img{ width:100%; height:100%; object-fit:cover; }
.portrait .ph-note{ position:absolute; left:0; right:0; bottom:0; padding:10px 14px; font-family:"IBM Plex Mono",monospace; font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:#fff; background:linear-gradient(transparent,rgba(9,18,32,.85)); }
.about h2{ margin-top:14px; } .about .lede{ margin-top:20px; }
.signature{ margin-top:22px; font-family:"Archivo"; font-weight:700; color:var(--ink); }
.signature span{ display:block; font-family:"IBM Plex Mono",monospace; font-weight:400; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--slate-2); margin-top:4px; }

/* ---- covers row ---- */
.covers{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:42px; }
@media(max-width:760px){ .covers{ grid-template-columns:1fr 1fr; } }
.cover{ display:block; border-radius:9px; overflow:hidden; box-shadow:var(--shadow); transition:transform .35s,box-shadow .35s; }
.cover:hover{ transform:translateY(-8px); box-shadow:0 34px 56px -26px rgba(9,18,32,.6); }
.cover img{ width:100%; transition:transform .5s; }
.cover:hover img{ transform:scale(1.05); }

/* ---- book ---- */
.book{ display:grid; grid-template-columns:290px 1fr; gap:clamp(30px,5vw,66px); align-items:center; }
@media(max-width:740px){ .book{ grid-template-columns:1fr; justify-items:start; } }
.book .cover{ max-width:290px; }

/* ---- frameworks ---- */
.fw{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; margin-top:46px; }
@media(max-width:980px){ .fw{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:620px){ .fw{ grid-template-columns:1fr 1fr; } }
.fwcard{ --ac:var(--gold-soft); border:1px solid rgba(255,255,255,.14); border-radius:9px; padding:22px 18px; background:rgba(255,255,255,.04); transition:.2s; display:block; }
.fwcard:hover{ background:rgba(255,255,255,.07); border-color:var(--ac); transform:translateY(-4px); }
.fwcard .sym{ font-family:"Archivo"; font-weight:800; font-size:1.9rem; color:var(--ac); }
.fwcard h4{ color:#fff; font-size:.98rem; margin:12px 0 8px; line-height:1.2; }
.fwcard p{ font-size:.82rem; color:var(--on-navy-soft); line-height:1.45; }

/* ---- two-col generic ---- */
.cols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:center; }
@media(max-width:820px){ .cols{ grid-template-columns:1fr; } }
.mt{ margin-top:18px; }
.notice{ border:1px solid rgba(255,255,255,.18); border-left:3px solid var(--gold); border-radius:4px; padding:16px 20px; margin-top:22px; }
.notice p{ font-size:.9rem; }

/* ---- feeds ---- */
.feedlist{ margin-top:30px; display:grid; gap:2px; }
.fitem{ display:grid; grid-template-columns:84px 1fr; gap:16px; align-items:center; padding:15px 0; border-top:1px solid var(--line); transition:.15s; }
.fitem:hover{ padding-left:6px; }
.fitem.noimg{ grid-template-columns:1fr; }
.fitem .thumb{ width:84px; height:60px; border-radius:6px; object-fit:cover; background:var(--ivory); }
.fitem .ftitle{ font-weight:500; color:var(--ink); font-size:.98rem; line-height:1.35; display:block; }
.fitem .fmeta{ font-family:"IBM Plex Mono",monospace; font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:var(--slate-2); margin-bottom:4px; display:block; }
.navy-text .fitem{ border-color:rgba(255,255,255,.1); }
.navy-text .fitem .ftitle{ color:#E6ECF3; } .navy-text .fitem:hover .ftitle{ color:var(--gold-soft); }

/* ---- partners ---- */
.partners{ display:flex; flex-wrap:wrap; gap:18px; margin-top:34px; }
.pslot{ flex:1 1 150px; min-height:88px; border:1px dashed var(--line); border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--slate-2); font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; background:#fff; }

/* ---- dashboard ---- */
.dash{ display:grid; grid-template-columns:1fr 1.2fr 1fr; gap:20px; margin-top:42px; align-items:stretch; }
@media(max-width:980px){ .dash{ grid-template-columns:1fr; } }
.panel{ border:1px solid rgba(255,255,255,.13); border-radius:13px; background:rgba(255,255,255,.035); padding:20px; display:flex; flex-direction:column; }
.panel .phead{ display:flex; align-items:baseline; justify-content:space-between; gap:8px; border-bottom:1px solid rgba(255,255,255,.1); padding-bottom:11px; margin-bottom:4px; }
.panel .phead h3{ color:#fff; font-size:1.08rem; }
.panel .phead .src{ font-family:"IBM Plex Mono",monospace; font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-soft); }
.panel .loading{ color:var(--on-navy-soft); font-size:.86rem; padding:16px 0; }
.tvwrap{ min-height:420px; } .tvwrap .tradingview-widget-container,.tvwrap .tradingview-widget-container__widget{ height:100%; min-height:400px; }
.pfoot{ margin-top:14px; }

/* ---- footer ---- */
footer{ background:var(--navy-deep); color:var(--on-navy); padding:clamp(50px,6vw,76px) 0 26px; }
.fgrid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:38px; }
@media(max-width:820px){ .fgrid{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .fgrid{ grid-template-columns:1fr; } }
footer h4{ font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-soft); margin:0 0 16px; }
footer a{ color:var(--on-navy); font-size:.92rem; }
.fcol a{ display:block; padding:5px 0; transition:.15s; } .fcol a:hover{ color:#fff; }
.fbrand .name{ font-family:"Archivo"; font-weight:800; color:#fff; font-size:1.2rem; }
.fbrand p{ font-size:.9rem; margin-top:12px; max-width:36ch; }
.social{ display:flex; gap:11px; margin-top:18px; }
.social a{ width:38px; height:38px; border:1px solid rgba(255,255,255,.18); border-radius:8px; display:flex; align-items:center; justify-content:center; }
.social a:hover{ border-color:var(--gold); background:rgba(168,129,43,.14); }
.social svg{ width:17px; height:17px; fill:var(--on-navy); } .social a:hover svg{ fill:var(--gold-soft); }
.news{ display:flex; gap:8px; margin-top:14px; }
.news input{ flex:1; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); border-radius:6px; padding:11px 13px; color:#fff; font:inherit; font-size:.88rem; }
.news input::placeholder{ color:var(--on-navy-soft); }
.news button{ background:var(--teal); color:#fff; border:0; border-radius:6px; padding:0 16px; font-family:"IBM Plex Mono",monospace; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.news button:hover{ background:var(--teal-soft); }
.fbar{ border-top:1px solid rgba(255,255,255,.1); margin-top:42px; padding-top:22px; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:.8rem; color:var(--on-navy-soft); }

/* ---- donate modal ---- */
.modal{ position:fixed; inset:0; z-index:100; display:none; align-items:center; justify-content:center; padding:20px; }
.modal.open{ display:flex; }
.modal .ovl{ position:absolute; inset:0; background:rgba(9,18,32,.6); backdrop-filter:blur(3px); }
.modal .card{ position:relative; width:min(440px,100%); background:#fff; border-radius:14px; padding:32px; box-shadow:var(--shadow); }
.modal .x{ position:absolute; top:14px; right:16px; background:none; border:0; font-size:1.5rem; color:var(--slate-2); cursor:pointer; line-height:1; }
.modal h3{ font-size:1.4rem; } .modal .subt{ color:var(--slate); font-size:.95rem; margin-top:8px; }
.amts{ display:flex; gap:10px; margin:22px 0 8px; }
.amts button{ flex:1; padding:14px 0; border:1px solid var(--line); border-radius:8px; background:#fff; font-family:"Archivo"; font-weight:700; font-size:1.05rem; color:var(--ink); cursor:pointer; transition:.15s; }
.amts button:hover,.amts button.sel{ border-color:var(--gold); background:rgba(168,129,43,.08); }
.modal .note2{ font-size:.78rem; color:var(--slate-2); margin-top:16px; line-height:1.5; }

/* skip link */
.skip{ position:absolute; left:-9999px; }
.skip:focus{ left:16px; top:10px; z-index:200; background:#fff; padding:8px 14px; border-radius:6px; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
/* ===== inner pages ===== */
.page-hero{ padding:130px 0 60px; }
.page-hero h1{ font-size:clamp(2.1rem,4vw,3.2rem); font-weight:800; max-width:18ch; margin-top:14px; }
.page-hero .lede{ margin-top:20px; max-width:56ch; }
.crumb{ font-family:"IBM Plex Mono",monospace; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--on-navy-soft); }
.crumb a{ color:var(--gold-soft); }

/* status tracker */
.track{ width:100%; border-collapse:collapse; margin-top:34px; font-size:.93rem; }
.track th{ text-align:left; font-family:"IBM Plex Mono",monospace; font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--slate-2); padding:0 14px 12px; border-bottom:1px solid var(--line); }
.track td{ padding:16px 14px; border-bottom:1px solid var(--line); vertical-align:top; }
.track tr:hover td{ background:var(--ivory); }
.track .ttitle{ font-weight:600; color:var(--ink); }
.track .tjournal{ color:var(--slate); font-size:.88rem; }
.track a{ color:var(--gold); font-family:"IBM Plex Mono",monospace; font-size:.82rem; }
@media(max-width:760px){ .track thead{ display:none; } .track,.track tbody,.track tr,.track td{ display:block; width:100%; } .track tr{ border:1px solid var(--line); border-radius:10px; margin-bottom:14px; padding:6px 4px; } .track td{ border:0; padding:7px 14px; } }

.badge{ display:inline-block; font-family:"IBM Plex Mono",monospace; font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; padding:.4em .7em; border-radius:100px; border:1px solid; white-space:nowrap; }
.badge.review{ color:#1F7A52; border-color:#9AD0B6; background:#EAF6F0; }
.badge.resub{ color:#9A6512; border-color:#E2C58C; background:#FBF3E2; }
.badge.submit{ color:#2C5AA0; border-color:#AEC4E6; background:#EAF1FB; }

/* essay rows */
.papers{ display:grid; gap:30px; margin-top:42px; }
.paper{ display:grid; grid-template-columns:170px 1fr; gap:30px; align-items:start; padding-bottom:30px; border-bottom:1px solid var(--line); }
.paper:last-child{ border-bottom:0; }
@media(max-width:680px){ .paper{ grid-template-columns:1fr; } .paper .cover{ max-width:170px; } }
.paper .meta{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:6px 0 12px; }
.paper .jr{ font-family:"IBM Plex Mono",monospace; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--slate-2); }
.paper h3{ font-size:1.35rem; }
.paper p{ font-size:.96rem; margin-top:6px; }
.kw{ display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
.kw span{ font-family:"IBM Plex Mono",monospace; font-size:.6rem; letter-spacing:.04em; text-transform:uppercase; color:var(--slate); border:1px solid var(--line); border-radius:100px; padding:.34em .66em; }
.paper .links{ display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }

/* framework explainers */
.fwx{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:42px; }
@media(max-width:760px){ .fwx{ grid-template-columns:1fr; } }
.fxcard{ border:1px solid rgba(255,255,255,.14); border-radius:11px; padding:26px; background:rgba(255,255,255,.04); }
.fxcard .sym{ font-family:"Archivo"; font-weight:800; font-size:2.1rem; color:var(--acc,var(--gold-soft)); }
.fxcard h3{ color:#fff; margin:8px 0 10px; }
.fxcard p{ font-size:.92rem; color:var(--on-navy); }
.formula{ font-family:"IBM Plex Mono",monospace; font-size:.82rem; color:var(--gold-soft); background:rgba(0,0,0,.22); border:1px solid rgba(198,162,76,.2); border-radius:7px; padding:12px 14px; margin-top:14px; overflow-x:auto; }
.note-card{ border:1px solid var(--line); border-left:3px solid var(--gold); border-radius:6px; padding:20px 24px; background:#fff; margin-top:8px; }

/* ===== forms / contact / resilience ===== */
.form{ display:grid; gap:16px; max-width:640px; margin-top:28px; }
.form .row2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:560px){ .form .row2{ grid-template-columns:1fr; } }
.field label{ display:block; font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--slate-2); margin-bottom:7px; }
.field input,.field select,.field textarea{ width:100%; font:inherit; font-size:.95rem; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:8px; padding:12px 14px; transition:.15s; }
.field input:focus,.field select:focus,.field textarea:focus{ border-color:var(--gold); outline:none; box-shadow:0 0 0 3px rgba(168,129,43,.12); }
.field textarea{ min-height:140px; resize:vertical; }
.form .hint{ font-size:.8rem; color:var(--slate-2); }
.ok-msg{ display:none; border:1px solid #9AD0B6; background:#EAF6F0; color:#1F7A52; border-radius:8px; padding:14px 16px; font-size:.92rem; margin-top:8px; }

/* faq */
.faq{ margin-top:32px; max-width:780px; }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{ cursor:pointer; list-style:none; padding:18px 0; font-family:"Archivo"; font-weight:600; color:var(--ink); font-size:1.05rem; display:flex; justify-content:space-between; gap:16px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; color:var(--gold); font-weight:700; }
.faq details[open] summary::after{ content:"–"; }
.faq details p{ padding:0 0 18px; color:var(--slate); font-size:.95rem; }

/* templates */
.tmpls{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:40px; }
@media(max-width:880px){ .tmpls{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .tmpls{ grid-template-columns:1fr; } }
.tcat{ border:1px solid var(--line); border-radius:11px; background:#fff; padding:24px; }
.tcat h3{ font-size:1.1rem; display:flex; align-items:center; gap:10px; }
.tcat .ic{ width:34px;height:34px;border-radius:8px;background:var(--ivory);display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:"IBM Plex Mono";font-size:.8rem;flex:none; }
.tcat ul{ list-style:none; padding:0; margin:14px 0 0; }
.tcat li{ padding:9px 0; border-top:1px solid var(--line); font-size:.92rem; color:var(--slate); display:flex; justify-content:space-between; align-items:center; gap:10px; }
.tcat li a{ font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); white-space:nowrap; }

/* advisory */
.adv{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:40px; }
@media(max-width:760px){ .adv{ grid-template-columns:1fr; } }
.advcard{ border:1px solid rgba(255,255,255,.14); border-radius:11px; padding:26px; background:rgba(255,255,255,.04); }
.advcard h3{ color:#fff; font-size:1.18rem; }
.advcard p{ color:var(--on-navy); font-size:.92rem; margin-top:8px; }
.advcard ul{ margin:14px 0 0; padding-left:18px; color:var(--on-navy-soft); font-size:.88rem; }
.advcard li{ margin:5px 0; }
.advcard .btn{ margin-top:18px; }

/* whatsapp / contact details */
.wa-btn{ background:#25D366; color:#06351b; border-color:#25D366; }
.wa-btn:hover{ background:#1faa52; border-color:#1faa52; color:#fff; }
.cdetails{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:34px; }
@media(max-width:760px){ .cdetails{ grid-template-columns:1fr; } }
.cdetails .c{ border:1px solid var(--line); border-radius:10px; padding:22px; background:#fff; }
.cdetails .c h4{ font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--slate-2); margin:0 0 8px; }
.cdetails .c a,.cdetails .c span{ color:var(--ink); font-size:.95rem; }

/* FAQ on navy background */
.navy-text .faq details{ border-color:rgba(255,255,255,.12); }
.navy-text .faq summary{ color:#fff; }
.navy-text .faq summary::after{ color:var(--gold-soft); }
.navy-text .faq details p{ color:var(--on-navy); }
