:root{
  --navy:#0A1628;--navy2:#0D1B35;--navy3:#0F2040;
  --gold:#C9922A;--gold2:#E8B04A;--gold3:#F5C86A;
  --teal:#0F6E56;--red:#8B2020;--blue:#185FA5;--purple:#3A1A7A;
  --white:#F5F0E8;--off:#E0D8C8;--cream:#D4CCBC;--mg:#777;--dg:#333;
  --gap:2px;
}
html{scroll-behavior:smooth;overflow-x:hidden}
body{background:var(--navy);color:var(--white);font-family:'Barlow',sans-serif;min-height:100vh}

/* ══ TYPOGRAPHY ══ */
.f-bebas{font-family:'Bebas Neue',sans-serif;letter-spacing:2px}
.f-cond{font-family:'Barlow Condensed',sans-serif}
.f-mono{font-family:'Source Code Pro',monospace}
.f-body{font-family:'Barlow',sans-serif}

/* ══ NAV ══ */

nav{
  position:fixed;top:0;left:0;right:0;z-index:999;
  height:60px;display:flex;align-items:center;justify-content:space-between;
  padding:0 40px;
  background:rgba(10,22,40,0.97);
  border-bottom:1px solid rgba(201,146,42,0.75);
  backdrop-filter:blur(24px);
}
.nav-logo{font-family:'Bebas Neue',sans-serif;font-size:26px;color:var(--gold);letter-spacing:3px;cursor:pointer;text-decoration:none;display:flex;align-items:center;gap:8px;flex-shrink:0}
.nav-logo span{font-family:'Source Code Pro',monospace;font-size:10px;color:rgba(201,146,42,0.72);letter-spacing:1px}
.nav-links{display:flex;align-items:center;gap:2px;list-style:none;flex:1;justify-content:center}
.nav-links li{position:relative}
.nav-links a,.nav-links button{
  display:inline-flex;align-items:center;gap:5px;padding:0 10px;height:38px;
  font-family:'Barlow Condensed',sans-serif;font-size:13px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;
  color:rgba(245,240,232,.65);text-decoration:none;background:none;border:none;cursor:pointer;border-radius:2px;
  transition:color .15s,background .15s;white-space:nowrap
}
.nav-links a:hover,.nav-links button:hover,.nav-links li:hover>a,.nav-links li:hover>button{color:var(--white);background:rgba(201,146,42,0.75)}
.nav-links a.active,.nav-links button.active{color:var(--gold)}
.nav-links i{font-size:13px}
.nav-lock{display:inline-flex;align-items:center;gap:5px;padding:0 10px;height:38px;font-family:'Barlow Condensed',sans-serif;font-size:13px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:rgba(245,240,232,0.72);cursor:default;position:relative}
.nav-lock i{font-size:12px;color:rgba(201,146,42,0.72)}
.nav-lock:hover .lock-tip{opacity:1;transform:translateX(-50%) translateY(0)}
.lock-tip{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%) translateY(-4px);background:var(--navy3);border:1px solid rgba(201,146,42,0.75);padding:6px 12px;white-space:nowrap;font-family:'Source Code Pro',monospace;font-size:9px;color:rgba(201,146,42,.75);letter-spacing:1.5px;text-transform:uppercase;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;z-index:200}
.dropdown{position:absolute;top:calc(100% + 1px);left:50%;transform:translateX(-50%) translateY(-6px);background:var(--navy2);border:1px solid rgba(201,146,42,0.75);min-width:248px;z-index:500;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;box-shadow:0 20px 60px rgba(0,0,0,.7)}
.nav-links li:hover .dropdown{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.dd-section{padding:5px 0;border-bottom:1px solid rgba(201,146,42,0.75)}
.dd-section:last-child{border-bottom:none}
.dd-label{font-family:'Source Code Pro',monospace;font-size:9px;color:rgba(201,146,42,0.72);letter-spacing:3px;text-transform:uppercase;padding:3px 14px 1px}
.dropdown a{display:flex;align-items:center;gap:10px;padding:8px 14px;font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:rgba(245,240,232,.65);text-decoration:none;transition:all .1s}
.dropdown a:hover{background:rgba(201,146,42,0.75);color:var(--white);padding-left:18px}
.dropdown a i{font-size:14px;opacity:.65}
.dropdown a:hover i{opacity:1}
.tier{margin-left:auto;font-family:'Source Code Pro',monospace;font-size:9px;padding:2px 6px;letter-spacing:1px;flex-shrink:0}
.tg{background:rgba(15,110,86,0.75);color:#2ECC71}
.ta{background:rgba(201,146,42,0.75);color:var(--gold)}
.tb{background:rgba(24,95,165,0.75);color:#4A9FE5}
.tr{background:rgba(139,32,32,0.75);color:#E05555}
.tp{background:rgba(58,26,122,0.75);color:#A880FF}
.nav-ctas{display:flex;align-items:center;gap:8px;flex-shrink:0}
.live-badge{display:inline-flex;align-items:center;gap:5px;background:rgba(15,110,86,0.75);border:1px solid rgba(15,110,86,0.75);padding:3px 9px;border-radius:2px;font-family:'Source Code Pro',monospace;font-size:11px;color:#2ECC71;letter-spacing:1px;cursor:default;flex-shrink:0}
.live-dot{width:7px;height:7px;border-radius:50%;background:#2ECC71;animation:pulse 2s ease-in-out infinite;flex-shrink:0}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.btn-in{height:34px;padding:0 14px;font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:rgba(245,240,232,.65);background:transparent;border:1px solid rgba(245,240,232,0.75);border-radius:2px;cursor:pointer;transition:all .15s;white-space:nowrap}
.btn-in:hover{color:var(--white);border-color:rgba(245,240,232,0.72)}
.btn-sub{height:34px;padding:0 16px;font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--navy);background:var(--gold);border:none;border-radius:2px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:all .15s;white-space:nowrap}
.btn-sub:hover{background:var(--gold2);transform:translateY(-1px)}

/* ══ TICKER ══ */
.ticker{background:rgba(201,146,42,.04);border-bottom:1px solid rgba(201,146,42,0.75);padding:7px 0;overflow:hidden;white-space:nowrap}
.ticker-inner{display:inline-flex;gap:52px;animation:tick 32s linear infinite}
.ticker-item{font-family:'Source Code Pro',monospace;font-size:11px;color:rgba(201,146,42,.6);letter-spacing:1.5px;text-transform:uppercase;flex-shrink:0}
.ticker-item span{color:#2ECC71;margin-right:4px}
@keyframes tick{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ══ REVEAL ══ */
.reveal{opacity:1;transform:none;transition:opacity .8s,transform .8s}
.reveal.vis{opacity:1;transform:none}
.r1{transition-delay:.1s}.r2{transition-delay:.2s}.r3{transition-delay:.3s}.r4{transition-delay:.4s}.r5{transition-delay:.5s}.r6{transition-delay:.6s}

/* ══ HERO ══ */
.hero{
  min-height:100vh;padding:120px 48px 80px;
  display:flex;align-items:flex-end;
  position:relative;overflow:hidden;
}
.hero-bg{position:absolute;inset:0;background:linear-gradient(145deg,#0A1628 0%,#0D1B35 60%,#0A1628 100%);z-index:0}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(201,146,42,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(201,146,42,.025) 1px,transparent 1px);background-size:56px 56px;z-index:1;pointer-events:none}
.hero-diag{position:absolute;bottom:-120px;right:-80px;width:640px;height:640px;border:1px solid rgba(201,146,42,.06);transform:rotate(15deg);z-index:1;pointer-events:none}
.hero-diag2{position:absolute;bottom:-60px;right:-20px;width:480px;height:480px;border:1px solid rgba(201,146,42,.04);transform:rotate(30deg);z-index:1;pointer-events:none}
.hero-num{position:absolute;right:-30px;bottom:-100px;font-family:'Bebas Neue',sans-serif;font-size:32vw;color:rgba(201,146,42,.025);line-height:1;z-index:1;user-select:none;pointer-events:none}
.hero-content{position:relative;z-index:2;max-width:1000px;width:100%}
.hero-eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:24px}
.hero-eyebrow-line{width:44px;height:1px;background:var(--gold)}
.hero-eyebrow-text{font-family:'Source Code Pro',monospace;font-size:11px;color:rgba(201,146,42,.7);letter-spacing:4px;text-transform:uppercase}
.hero-h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(64px,10vw,130px);line-height:.84;letter-spacing:2px;margin-bottom:0}
.hero-h1 .gold{color:var(--gold);display:block}
.hero-h1 .white{color:var(--white);display:block}
.hero-tagline{font-size:clamp(17px,1.8vw,22px);color:rgba(224,216,200,.72);max-width:620px;line-height:1.75;margin:28px 0 44px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:60px}
.btn-primary{padding:16px 44px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:15px;letter-spacing:1.5px;text-transform:uppercase;color:var(--navy);background:var(--gold);border:none;border-radius:2px;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s}
.btn-primary:hover{background:var(--gold2);transform:translateY(-2px)}
.btn-secondary{padding:16px 44px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:15px;letter-spacing:1.5px;text-transform:uppercase;color:var(--white);background:transparent;border:2px solid rgba(245,240,232,0.75);border-radius:2px;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s}
.btn-secondary:hover{border-color:var(--gold);color:var(--gold)}
.hero-stats{display:flex;gap:0;border-top:1px solid rgba(201,146,42,0.75);padding-top:0}
.hero-stat{padding:28px 44px 0 0;flex:none}
.hero-stat:first-child{padding-left:0}
.hero-stat+.hero-stat{border-left:1px solid rgba(201,146,42,0.75);padding-left:44px}
.hs-n{font-family:'Bebas Neue',sans-serif;font-size:52px;color:var(--gold);line-height:1;margin-bottom:4px}
.hs-l{font-family:'Barlow Condensed',sans-serif;font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--mg)}

/* ══ STAGE LAG EXPLAINER (Law 5 — Contrast) ══ */
.lag-section{padding:100px 48px;position:relative;overflow:hidden}
.lag-bg{position:absolute;inset:0;background:var(--navy2)}
.lag-inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;max-width:1200px;margin:0 auto}
.section-eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.section-line{width:36px;height:1px;background:var(--gold)}
.section-tag{font-family:'Source Code Pro',monospace;font-size:11px;color:rgba(201,146,42,.7);letter-spacing:4px;text-transform:uppercase}
.section-h{font-family:'Bebas Neue',sans-serif;font-size:clamp(36px,4.5vw,62px);line-height:.88;margin-bottom:22px}
.section-body{font-size:17px;color:rgba(224,216,200,.72);line-height:1.8}
.bq{border-left:3px solid var(--gold);padding-left:22px;margin:28px 0;font-size:20px;font-style:italic;color:rgba(224,216,200,.8);line-height:1.55}
.lag-visual{border:1px solid rgba(201,146,42,0.75);padding:32px;background:var(--navy)}
.lag-title{font-family:'Source Code Pro',monospace;font-size:10px;color:rgba(201,146,42,0.72);letter-spacing:3px;text-transform:uppercase;margin-bottom:20px}
.lag-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.lag-row:last-child{border-bottom:none}
.lag-label{font-family:'Barlow Condensed',sans-serif;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--mg)}
.lag-val{font-family:'Bebas Neue',sans-serif;font-size:30px;line-height:1}
.lag-bar{flex:1;height:3px;background:rgba(255,255,255,.06);margin:0 16px;position:relative}
.lag-fill{height:100%;transition:width 1.2s ease}

/* ══ INSTRUMENTS (Law 16 — Commitment Ladder) ══ */
.instr-section{padding:100px 48px}
.instr-inner{max-width:1200px;margin:0 auto}
.instr-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:48px;flex-wrap:wrap;gap:20px}
.instr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}
.instr-card{padding:32px 28px;background:var(--navy2);position:relative;cursor:pointer;transition:transform .2s;border-top:3px solid transparent;overflow:hidden}
.instr-card::before{content:'';position:absolute;inset:0;opacity:0;transition:opacity .3s;background:linear-gradient(135deg,rgba(201,146,42,.05),transparent)}
.instr-card:hover{transform:translateY(-3px)}
.instr-card:hover::before{opacity:1}
.instr-num{font-family:'Bebas Neue',sans-serif;font-size:42px;line-height:1;opacity:.1;margin-bottom:10px}
.instr-badge{display:inline-block;font-family:'Source Code Pro',monospace;font-size:9px;letter-spacing:2px;padding:3px 8px;margin-bottom:12px}
.instr-name{font-family:'Bebas Neue',sans-serif;font-size:21px;color:var(--white);letter-spacing:1px;margin-bottom:7px}
.instr-desc{font-size:13px;color:var(--mg);line-height:1.65}
.instr-arrow{position:absolute;bottom:18px;right:18px;font-size:16px;color:var(--mg);transition:all .2s}
.instr-card:hover .instr-arrow{transform:translate(2px,-2px)}

/* ══ THE THESIS (Law 17 — Legacy Frame) ══ */
.thesis-section{padding:100px 48px;background:var(--navy3);position:relative;overflow:hidden}
.thesis-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(201,146,42,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(201,146,42,.02) 1px,transparent 1px);background-size:56px 56px;pointer-events:none}
.thesis-inner{max-width:1200px;margin:0 auto;position:relative;z-index:2}
.thesis-statement{font-family:'Bebas Neue',sans-serif;font-size:clamp(48px,6vw,88px);line-height:.86;letter-spacing:2px;text-align:center;margin-bottom:48px}
.thesis-gold{color:var(--gold)}
.thesis-three{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.thesis-block{padding:40px 36px;background:var(--navy);border-top:2px solid rgba(201,146,42,0.75)}
.tb-num{font-family:'Bebas Neue',sans-serif;font-size:56px;color:var(--gold);opacity:.2;line-height:1;margin-bottom:8px}
.tb-title{font-family:'Bebas Neue',sans-serif;font-size:24px;color:var(--white);letter-spacing:1px;margin-bottom:10px}
.tb-body{font-size:14px;color:var(--mg);line-height:1.75}

/* ══ INDICES (Law 8 — Specificity) ══ */
.indices-section{padding:100px 48px}
.indices-inner{max-width:1200px;margin:0 auto}
.indices-scroll{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-top:48px}
.idx-card{padding:28px 24px;background:var(--navy2);border-left:3px solid transparent;transition:border-color .2s}
.idx-card:hover{border-left-color:var(--gold)}
.idx-ticker{font-family:'Source Code Pro',monospace;font-size:12px;font-weight:600;color:var(--gold);margin-bottom:6px}
.idx-name{font-family:'Barlow Condensed',sans-serif;font-size:17px;font-weight:700;color:var(--white);margin-bottom:6px;letter-spacing:.5px}
.idx-desc{font-size:13px;color:var(--mg);line-height:1.6}
.idx-score{margin-top:14px;display:flex;align-items:center;gap:12px}
.idx-score-n{font-family:'Bebas Neue',sans-serif;font-size:36px;line-height:1}
.idx-score-l{font-family:'Source Code Pro',monospace;font-size:10px;color:var(--mg);letter-spacing:1.5px;line-height:1.5}
.idx-badge{display:inline-block;font-family:'Source Code Pro',monospace;font-size:9px;letter-spacing:1.5px;padding:3px 7px;margin-top:12px}

/* ══ RALI PROOF (Law 7 — Social Proof) ══ */
.rali-section{padding:100px 48px;background:var(--navy2)}
.rali-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.rali-table{width:100%;border-collapse:collapse;margin-top:28px}
.rali-table th{font-family:'Source Code Pro',monospace;font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--mg);padding:10px 14px;border-bottom:1px solid rgba(201,146,42,0.75);text-align:left}
.rali-table td{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.04);font-size:14px;color:rgba(224,216,200,.75)}
.rali-table tr:hover td{background:rgba(201,146,42,.04)}
.rali-table .mono{font-family:'Source Code Pro',monospace;font-size:12px;color:var(--gold)}
.rali-table .red{color:#E05555}
.rali-number-hero{font-family:'Bebas Neue',sans-serif;font-size:clamp(80px,12vw,160px);color:var(--gold);line-height:.85;margin:20px 0}
.rali-number-label{font-family:'Barlow Condensed',sans-serif;font-size:13px;letter-spacing:3px;text-transform:uppercase;color:var(--mg)}

/* ══ DESIGN PARTNERS (Law 7 — Social Proof, renamed per earlier fix) ══ */
.partners-section{padding:80px 48px;border-top:1px solid rgba(201,146,42,0.75);border-bottom:1px solid rgba(201,146,42,0.75)}
.partners-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:48px;flex-wrap:wrap}
.partners-label{font-family:'Source Code Pro',monospace;font-size:10px;color:rgba(201,146,42,0.72);letter-spacing:3px;text-transform:uppercase;flex-shrink:0;white-space:nowrap}
.partners-divider{width:1px;height:32px;background:rgba(201,146,42,0.75);flex-shrink:0}
.partner-item{font-family:'Barlow Condensed',sans-serif;font-size:16px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gold);cursor:default}
.partners-note{margin-left:auto;font-family:'Source Code Pro',monospace;font-size:10px;color:rgba(201,146,42,0.72);letter-spacing:1.5px;white-space:nowrap}

/* ══ GOVERNED OBSERVER (Law 14 — Reciprocity) ══ */
.observer-section{padding:100px 48px;background:var(--navy3)}
.observer-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.observer-features{margin-top:32px;display:flex;flex-direction:column;gap:0}
.obs-feat{display:flex;gap:20px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.obs-feat:last-child{border-bottom:none}
.obs-feat-icon{font-size:22px;flex-shrink:0;color:rgba(58,106,74,.8)}
.obs-feat-title{font-family:'Barlow Condensed',sans-serif;font-size:16px;font-weight:700;color:var(--white);letter-spacing:.5px;margin-bottom:3px}
.obs-feat-body{font-size:13px;color:var(--mg);line-height:1.65}
.obs-card{border:1px solid rgba(58,106,74,0.75);padding:36px;background:rgba(58,106,74,.06)}
.obs-card-header{font-family:'Source Code Pro',monospace;font-size:10px;color:rgba(58,106,74,.8);letter-spacing:3px;text-transform:uppercase;margin-bottom:20px}
.obs-cta{display:block;margin-top:24px;padding:14px 28px;background:#3A6A4A;color:var(--white);font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:14px;letter-spacing:1.5px;text-transform:uppercase;text-align:center;text-decoration:none;cursor:pointer;border:none;transition:all .2s;border-radius:2px;width:100%}
.obs-cta:hover{background:#4A8A5A;transform:translateY(-1px)}
.obs-legal{margin-top:14px;font-family:'Source Code Pro',monospace;font-size:9px;color:rgba(255,255,255,0.72);line-height:1.7;letter-spacing:.3px}

/* ══ CTA BANNER (Law 12 — Urgency + Law 15 — Pattern Interrupt) ══ */
.cta-section{padding:120px 48px;position:relative;overflow:hidden;background:var(--navy)}
.cta-accent{position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--gold)}
.cta-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(201,146,42,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(201,146,42,.02) 1px,transparent 1px);background-size:56px 56px;pointer-events:none}
.cta-inner{max-width:1000px;margin:0 auto;position:relative;z-index:2;text-align:center}
.cta-h{font-family:'Bebas Neue',sans-serif;font-size:clamp(52px,7vw,100px);line-height:.86;letter-spacing:2px;margin-bottom:24px}
.cta-gold{color:var(--gold)}
.cta-sub{font-size:18px;color:rgba(224,216,200,.7);margin-bottom:48px;max-width:900px;margin-left:auto;margin-right:auto;line-height:1.75}
.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ══ FOOTER ══ */
footer{background:#060E1C;padding:72px 48px 32px;border-top:1px solid rgba(201,146,42,0.75)}
.footer-inner{max-width:1200px;margin:0 auto}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr 1fr;gap:48px;padding-bottom:56px;border-bottom:1px solid rgba(255,255,255,.06)}
.footer-brand{}
.footer-logo{font-family:'Bebas Neue',sans-serif;font-size:32px;color:var(--gold);letter-spacing:3px;margin-bottom:14px}
.footer-tagline{font-size:14px;color:rgba(224,216,200,0.72);line-height:1.75;max-width:260px;margin-bottom:28px}
.footer-socials{display:flex;gap:10px}
.footer-social{width:36px;height:36px;border:1px solid rgba(201,146,42,0.75);display:flex;align-items:center;justify-content:center;color:rgba(201,146,42,0.72);font-size:15px;text-decoration:none;transition:all .15s;border-radius:2px}
.footer-social:hover{border-color:var(--gold);color:var(--gold);background:rgba(201,146,42,0.75)}
.footer-col-title{font-family:'Source Code Pro',monospace;font-size:9px;letter-spacing:3px;text-transform:uppercase;color:rgba(201,146,42,0.72);margin-bottom:18px}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer-links a{font-size:14px;color:rgba(224,216,200,0.72);text-decoration:none;transition:color .15s;display:flex;align-items:center;gap:6px;font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.5px}
.footer-links a:hover{color:var(--white)}
.footer-links .new{font-family:'Source Code Pro',monospace;font-size:8px;padding:2px 5px;background:rgba(201,146,42,0.75);color:var(--gold);letter-spacing:1px;margin-left:4px}
.footer-mid{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:40px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.footer-live{display:flex;align-items:center;gap:16px}
.footer-live-dot{width:8px;height:8px;border-radius:50%;background:#2ECC71;animation:pulse 2s ease-in-out infinite;flex-shrink:0}
.footer-live-text{font-family:'Source Code Pro',monospace;font-size:11px;color:rgba(45,204,113,.7);letter-spacing:2px;text-transform:uppercase}
.footer-disclaimer{font-family:'Source Code Pro',monospace;font-size:10px;color:rgba(255,255,255,0.72);line-height:1.7;letter-spacing:.3px}
.footer-bottom{padding-top:28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}
.footer-bottom-left{font-family:'Source Code Pro',monospace;font-size:10px;color:rgba(255,255,255,0.72);letter-spacing:.5px}
.footer-bottom-right{display:flex;gap:20px}
.footer-bottom-right a{font-family:'Source Code Pro',monospace;font-size:10px;color:rgba(255,255,255,0.72);text-decoration:none;letter-spacing:.5px;transition:color .15s}
.footer-bottom-right a:hover{color:rgba(255,255,255,0.72)}

/* ══ RESPONSIVE ══ */
@media(max-width:1100px){
  .instr-grid{grid-template-columns:repeat(2,1fr)}
  .
}
@media(max-width:900px){
  nav{padding:0 20px}
  .nav-links{display:none}
  .hero,.lag-section,.instr-section,.thesis-section,.indices-section,.rali-section,.observer-section,.cta-section,footer{padding-left:20px;padding-right:20px}
  .lag-inner,.rali-inner,.observer-inner,.footer-mid{grid-template-columns:1fr}
  .thesis-three,.indices-scroll{grid-template-columns:1fr}
  .
  .hero-stats{flex-wrap:wrap;gap:0}
  .hero-stat{padding:20px 28px 0 0}
  .hero-stat+.hero-stat{border-left:none;padding-left:0;border-top:1px solid rgba(201,146,42,0.75);padding-top:20px}
}


/* ═══════════════════════════════════════════════
   CANONICAL NAV + FOOTER CSS — DO NOT MODIFY
   Identical across all 25 pages
═══════════════════════════════════════════════ */
:root{
  --navy:#0A1628;--navy2:#0D1B35;--navy3:#0F2040;
  --gold:#C9922A;--gold2:#E8B04A;--gold3:#F5C86A;
  --teal:#0F6E56;--red:#8B2020;--blue:#185FA5;--purple:#3A1A7A;
  --white:#F5F0E8;--off:#E0D8C8;--cream:#D4CCBC;--mg:#777;--dg:#333;
  --gap:2px;
}

/* Nav */
navy:#0A1628;--navy2:#0D1B35;--navy3:#0F2040;
  --gold:#C9922A;--gold2:#E8B04A;--gold3:#F5C86A;
  --teal:#0F6E56;--red:#8B2020;--blue:#185FA5;--purple:#3A1A7A;
  --white:#F5F0E8;--off:#E0D8C8;--cream:#D4CCBC;--mg:#777;--dg:#333;
  --gap:2px;

html{scroll-behavior:smooth;overflow-x:hidden}
navy);color:var(--white);font-family:'Barlow',sans-serif;min-height:100vh

/* ══ TYPOGRAPHY ══ */
.f-bebas{font-family:'Bebas Neue',sans-serif;letter-spacing:2px}

/* Dropdown open on click (aria-expanded) AND hover */
.nav-links li:has(button[aria-expanded="true"]) .dropdown{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
button[aria-expanded="true"] + .dropdown{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}


/* ── PAGE STYLES ── */
body{background:var(--navy);color:var(--white);font-family:'Barlow',sans-serif;min-height:100vh;padding-top:60px;max-width:none!important;width:100%!important;}

/* \─\─ HERO \─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─ */
.ir-hero{background:linear-gradient(160deg,#060E1C 0%,#0A1628 55%,#040C1A 100%);border-bottom:1px solid rgba(155,114,207,0.75);padding:36px 48px 0;position:relative;overflow:hidden;}
.ir-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(155,114,207,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(155,114,207,.02) 1px,transparent 1px);background-size:60px 60px;pointer-events:none;}
.ih-wrap{position:relative;z-index:2;max-width:1600px;margin:0 auto;}
.ih-grid{display:grid;grid-template-columns:1fr 420px;gap:48px;align-items:start;margin-bottom:28px;}
.ih-eyebrow{font-family:'Source Code Pro',monospace;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:rgba(155,114,207,.6);display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.ih-eline{width:28px;height:1px;background:#9B72CF;flex-shrink:0;}
.ih-h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(52px,5.5vw,80px);line-height:.88;letter-spacing:2px;color:var(--white);margin-bottom:16px;}
.ih-h1 .purple{color:#9B72CF;}
.ih-declaration{font-family:'Source Code Pro',monospace;font-size:14px;letter-spacing:.5px;color:#9B72CF;padding:12px 18px;border:1px solid rgba(155,114,207,0.75);border-left:4px solid #9B72CF;margin-bottom:18px;line-height:1.7;background:rgba(155,114,207,.03);}
.ih-sub{font-size:17px;color:rgba(224,216,200,.65);line-height:1.8;max-width:900px;margin-bottom:24px;}
.ih-btns{display:flex;gap:10px;flex-wrap:wrap;}
.ih-stats{display:flex;gap:0;border-top:1px solid rgba(155,114,207,0.75);padding:16px 0 0;}
.ih-stat{padding-right:28px;flex:none;}
.ih-stat+.ih-stat{border-left:1px solid rgba(155,114,207,0.75);padding-left:28px;}
.ih-stn{font-family:'Bebas Neue',sans-serif;font-size:36px;color:#9B72CF;line-height:1;}
.ih-stl{font-family:'Source Code Pro',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(224,216,200,0.72);margin-top:2px;}

/* Hero right u2014 work queue snapshot */
.ih-box{background:rgba(6,14,28,.9);border:1px solid rgba(155,114,207,0.75);border-top:3px solid #9B72CF;overflow:hidden;}
.ih-box-head{padding:12px 18px;background:rgba(155,114,207,.04);border-bottom:1px solid rgba(155,114,207,0.75);display:flex;align-items:center;gap:9px;}
.ih-pip{width:7px;height:7px;border-radius:50%;background:#9B72CF;flex-shrink:0;animation:ihpip 3s infinite;}
@keyframes ihpip{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(155,114,207,0.75);}50%{opacity:.7;box-shadow:0 0 0 6px rgba(155,114,207,0);}}
.ih-box-title{font-family:'Source Code Pro',monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:rgba(155,114,207,.65);flex:1;}
.ih-box-stats{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid rgba(155,114,207,0.75);}
.ih-bs{padding:14px 12px;text-align:center;border-right:1px solid rgba(155,114,207,0.75);}
.ih-bs:last-child{border-right:none;}
.ih-bs-n{font-family:'Bebas Neue',sans-serif;font-size:30px;color:#9B72CF;line-height:1;margin-bottom:3px;}
.ih-bs-l{font-family:'Source Code Pro',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:rgba(224,216,200,0.72);}
.ih-queue-label{font-family:'Source Code Pro',monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:rgba(155,114,207,0.72);padding:8px 16px 4px;}
.ih-queue-item{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid rgba(155,114,207,.07);cursor:pointer;transition:background .1s;}
.ih-queue-item:hover{background:rgba(155,114,207,.05);}
.ih-queue-item:last-child{border-bottom:none;}
.ih-qi-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.ih-qi-dot.urgent{background:#E05555;}
.ih-qi-dot.pending{background:var(--gold);}
.ih-qi-dot.new{background:#9B72CF;}
.ih-qi-text{font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:700;color:rgba(224,216,200,.8);flex:1;letter-spacing:.3px;}
.ih-qi-badge{font-family:'Source Code Pro',monospace;font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:1px 6px;flex-shrink:0;}
.iqb-review{background:rgba(194,59,59,0.75);color:#E05555;border:1px solid rgba(194,59,59,0.75);}
.iqb-auth{background:rgba(201,146,42,0.75);color:var(--gold);border:1px solid rgba(201,146,42,0.75);}
.iqb-new{background:rgba(155,114,207,0.75);color:#9B72CF;border:1px solid rgba(155,114,207,0.75);}

/* \─\─ STICKY TABS \─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─ */
.ir-tabs-outer{position:sticky;top:60px;z-index:80;background:rgba(9,19,38,.98);border-bottom:2px solid rgba(155,114,207,0.75);backdrop-filter:blur(8px);}
.ir-tabs-inner{max-width:1600px;margin:0 auto;display:flex;align-items:center;padding:0 48px;}
.ir-tab{padding:13px 20px;font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:rgba(224,216,200,0.72);background:none;border:none;cursor:pointer;position:relative;transition:color .12s;white-space:nowrap;display:flex;align-items:center;gap:7px;}
.ir-tab:hover{color:rgba(224,216,200,.72);}
.ir-tab.active{color:var(--white);}
.ir-tab.active::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:#9B72CF;}
.ir-tab-ct{font-family:'Source Code Pro',monospace;font-size:11px;padding:2px 5px;background:rgba(155,114,207,0.75);color:rgba(155,114,207,.65);border:1px solid rgba(155,114,207,0.75);}

/* \─\─ PANELS \─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─ */
.ir-panel{display:none;max-width:1600px;margin:0 auto;padding:28px 48px 60px;}
.ir-panel.active{display:block;}
.ir-sec-eyebrow{font-family:'Source Code Pro',monospace;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:rgba(155,114,207,0.72);display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.ir-sec-eline{width:20px;height:1px;background:#9B72CF;}
.ir-sec-h{font-family:'Bebas Neue',sans-serif;font-size:clamp(26px,3vw,40px);letter-spacing:1.5px;color:var(--white);margin-bottom:8px;line-height:.95;}
.ir-sec-sub{font-size:15px;color:rgba(224,216,200,0.72);line-height:1.8;max-width:960px;margin-bottom:24px;}

/* \─\─ WORK QUEUE PANEL \─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─ */
.wq-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:3px;margin-bottom:24px;}
.wq-card{background:var(--navy2);border:1px solid rgba(255,255,255,.06);padding:20px 22px;}
.wq-card.urgent{border-top:3px solid #E05555;}
.wq-card.pending{border-top:3px solid var(--gold);}
.wq-card.new{border-top:3px solid #9B72CF;}
.wq-card-h{font-family:'Bebas Neue',sans-serif;font-size:20px;letter-spacing:1px;color:var(--white);margin-bottom:4px;}
.wq-card-sub{font-size:13px;color:rgba(224,216,200,0.72);margin-bottom:14px;line-height:1.55;}
.wq-items{display:flex;flex-direction:column;gap:3px;}
.wq-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .1s;}
.wq-item:hover{background:rgba(255,255,255,.06);}
.wq-item-name{font-size:13px;color:rgba(224,216,200,.75);flex:1;line-height:1.4;}
.wq-item-badge{font-family:'Source Code Pro',monospace;font-size:10px;letter-spacing:.8px;text-transform:uppercase;padding:2px 6px;flex-shrink:0;}
.wib-review{background:rgba(194,59,59,0.75);color:#E05555;border:1px solid rgba(194,59,59,0.75);}
.wib-auth{background:rgba(201,146,42,0.75);color:var(--gold);border:1px solid rgba(201,146,42,0.75);}
.wib-new{background:rgba(155,114,207,0.75);color:#9B72CF;border:1px solid rgba(155,114,207,0.75);}

/* \─\─ TRAJECTORY BRIEFS PANEL \─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─ */
.brief-grid{display:flex;flex-direction:column;gap:3px;}
.brief-card{background:var(--navy2);border:1px solid rgba(255,255,255,.06);padding:0;overflow:hidden;cursor:pointer;transition:border-color .12s;}
.brief-card:hover{border-color:rgba(155,114,207,0.72);}
.brief-head{padding:16px 20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.05);}
.brief-traj{font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:1px;color:var(--white);flex:1;}
.brief-stage{font-family:'Source Code Pro',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;padding:3px 9px;}
.bs-co{background:rgba(224,112,48,0.75);color:var(--amber);border:1px solid rgba(224,112,48,0.75);}
.bs-ha{background:rgba(74,159,229,0.75);color:#80A8E0;border:1px solid rgba(74,159,229,0.75);}
.bs-ac{background:rgba(201,146,42,0.75);color:rgba(201,146,42,.85);border:1px solid rgba(201,146,42,0.75);}
.bs-em{background:rgba(46,204,113,0.75);color:#2ECC71;border:1px solid rgba(46,204,113,0.75);}
.brief-date{font-family:'Source Code Pro',monospace;font-size:11px;color:rgba(224,216,200,0.72);flex-shrink:0;}
.brief-body{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;}
.brief-col{padding:14px 18px;border-right:1px solid rgba(255,255,255,.04);}
.brief-col:last-child{border-right:none;}
.brief-col-label{font-family:'Source Code Pro',monospace;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:rgba(155,114,207,0.72);margin-bottom:6px;}
.brief-col-text{font-size:14px;color:rgba(224,216,200,.7);line-height:1.6;}
.brief-col-text strong{color:rgba(224,216,200,.9);}
.brief-markers{padding:10px 18px;border-top:1px solid rgba(255,255,255,.04);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.brief-marker-pill{font-family:'Source Code Pro',monospace;font-size:11px;letter-spacing:.5px;padding:2px 8px;display:flex;align-items:center;gap:4px;}
.bmp-conf{background:rgba(46,204,113,.07);color:#2ECC71;border:1px solid rgba(46,204,113,0.75);}
.bmp-pend{background:rgba(201,146,42,.07);color:rgba(201,146,42,.8);border:1px solid rgba(201,146,42,0.75);}
.bmp-new{background:rgba(155,114,207,.07);color:#9B72CF;border:1px solid rgba(155,114,207,0.75);}

/* \─\─ PRESSURE POINT CHAINS PANEL \─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─ */
.pp-chain{background:var(--navy2);border:1px solid rgba(255,255,255,.06);margin-bottom:3px;overflow:hidden;}
.pp-chain-head{padding:14px 20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .1s;}
.pp-chain-head:hover{background:rgba(255,255,255,.02);}
.pp-chain-traj{font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:1px;color:var(--white);flex:1;}
.pp-chain-progress{font-family:'Source Code Pro',monospace;font-size:12px;color:rgba(224,216,200,0.72);}
.pp-chain-pct{font-family:'Bebas Neue',sans-serif;font-size:22px;color:var(--gold);line-height:1;}
.pp-nodes{padding:20px 24px;display:flex;flex-direction:column;gap:0;}
.pp-node{display:flex;align-items:flex-start;gap:14px;padding:12px 0;position:relative;}
.pp-node+.pp-node::before{content:'';position:absolute;left:11px;top:-12px;width:1px;height:24px;background:rgba(255,255,255,0.75);}
.pp-node-dot{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;border:2px solid;margin-top:1px;}
.ppd-confirmed{background:rgba(46,204,113,0.75);border-color:#2ECC71;color:#2ECC71;}
.ppd-pending{background:rgba(201,146,42,0.75);border-color:var(--gold);color:var(--gold);}
.ppd-future{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,0.72);color:rgba(224,216,200,0.72);}
.pp-node-body{flex:1;}
.pp-node-name{font-family:'Barlow Condensed',sans-serif;font-size:15px;font-weight:700;color:rgba(224,216,200,.85);letter-spacing:.3px;margin-bottom:3px;}
.ppd-future~.pp-node-body .pp-node-name{color:rgba(224,216,200,0.72);}
.pp-node-desc{font-size:13px;color:rgba(224,216,200,0.72);line-height:1.55;}
.pp-node-ts{font-family:'Source Code Pro',monospace;font-size:11px;color:rgba(46,204,113,.6);margin-top:3px;}
.pp-node-status{font-family:'Source Code Pro',monospace;font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:2px 7px;flex-shrink:0;margin-top:3px;}
.pps-conf{background:rgba(46,204,113,0.75);color:#2ECC71;border:1px solid rgba(46,204,113,0.75);}
.pps-pend{background:rgba(201,146,42,0.75);color:var(--gold);border:1px solid rgba(201,146,42,0.75);}
.pps-fut{background:rgba(255,255,255,.04);color:rgba(224,216,200,0.72);border:1px solid rgba(255,255,255,0.75);}

/* \─\─ OPTIONALITY WINDOWS PANEL \─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─ */
.ow-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:3px;margin-bottom:0;}
.ow-card{background:var(--navy2);border:1px solid rgba(255,255,255,.06);padding:20px 22px;position:relative;overflow:hidden;}
.ow-card.ow-open{border-top:3px solid #2ECC71;}
.ow-card.ow-narrowing{border-top:3px solid var(--gold);}
.ow-card.ow-closed{border-top:3px solid rgba(194,59,59,.7);}
.ow-window-badge{font-family:'Source Code Pro',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;padding:3px 10px;margin-bottom:12px;display:inline-flex;align-items:center;gap:5px;}
.owb-open{background:rgba(46,204,113,0.75);color:#2ECC71;border:1px solid rgba(46,204,113,0.75);}
.owb-narrowing{background:rgba(201,146,42,0.75);color:var(--gold);border:1px solid rgba(201,146,42,0.75);}
.owb-closed{background:rgba(194,59,59,0.75);color:#E05555;border:1px solid rgba(194,59,59,0.75);}
.ow-traj-name{font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:1px;color:var(--white);margin-bottom:6px;}
.ow-desc{font-size:13px;color:rgba(224,216,200,0.72);line-height:1.6;margin-bottom:14px;}
.ow-meter{height:8px;background:rgba(255,255,255,.07);border-radius:4px;overflow:hidden;margin-bottom:8px;}
.ow-meter-fill{height:100%;border-radius:4px;transition:width .6s ease;}
.owm-open{background:linear-gradient(90deg,rgba(46,204,113,0.75),#2ECC71);}
.owm-narrowing{background:linear-gradient(90deg,rgba(201,146,42,0.75),var(--gold));}
.owm-closed{background:linear-gradient(90deg,rgba(194,59,59,0.75),rgba(194,59,59,.7));}
.ow-meter-label{font-family:'Source Code Pro',monospace;font-size:11px;color:rgba(224,216,200,0.72);display:flex;justify-content:space-between;}
.ow-time-left{font-family:'Bebas Neue',sans-serif;font-size:22px;color:var(--white);line-height:1;margin-top:10px;}
.ow-time-sub{font-family:'Source Code Pro',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:rgba(224,216,200,0.72);}

/* \─\─ OBSERVATION ZONE ARCHIVE PANEL \─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─ */
.oz-filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
.oz-filter-btn{padding:6px 14px;font-family:'Barlow Condensed',sans-serif;font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:rgba(224,216,200,0.72);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,0.75);cursor:pointer;transition:all .12s;}
.oz-filter-btn:hover{color:rgba(224,216,200,.8);}
.oz-filter-btn.active{color:#9B72CF;background:rgba(155,114,207,0.75);border-color:rgba(155,114,207,0.72);}
.oz-item{background:var(--navy2);border:1px solid rgba(255,255,255,.06);padding:14px 18px;margin-bottom:3px;display:flex;align-items:flex-start;gap:14px;cursor:pointer;transition:border-color .12s;}
.oz-item:hover{border-color:rgba(155,114,207,0.72);}
.oz-item-left{flex-shrink:0;width:50px;text-align:center;}
.oz-count{font-family:'Bebas Neue',sans-serif;font-size:32px;color:rgba(155,114,207,0.72);line-height:1;}
.oz-count-sub{font-family:'Source Code Pro',monospace;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:rgba(155,114,207,0.72);}
.oz-item-body{flex:1;}
.oz-item-signal{font-size:14px;color:rgba(224,216,200,.8);line-height:1.55;margin-bottom:5px;}
.oz-item-meta{display:flex;gap:8px;flex-wrap:wrap;}
.oz-sector{font-family:'Source Code Pro',monospace;font-size:10px;letter-spacing:.8px;text-transform:uppercase;padding:1px 6px;border:1px solid;flex-shrink:0;}
.oz-date{font-family:'Source Code Pro',monospace;font-size:11px;color:rgba(224,216,200,0.72);}
.oz-promote{font-family:'Source Code Pro',monospace;font-size:10px;letter-spacing:.8px;text-transform:uppercase;padding:1px 6px;background:rgba(155,114,207,0.75);color:rgba(155,114,207,.6);border:1px solid rgba(155,114,207,0.75);cursor:pointer;transition:all .12s;flex-shrink:0;}
.oz-promote:hover{background:rgba(155,114,207,0.75);color:#9B72CF;}
.oz-item-right{flex-shrink:0;display:flex;flex-direction:column;gap:6px;align-items:flex-end;}

/* \─\─ RESOLUTION LOGIC LIBRARY PANEL \─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─ */
.rll-item{background:var(--navy2);border:1px solid rgba(255,255,255,.06);margin-bottom:3px;overflow:hidden;}
.rll-head{padding:14px 18px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:background .1s;border-bottom:1px solid rgba(255,255,255,.05);}
.rll-head:hover{background:rgba(255,255,255,.02);}
.rll-traj{font-family:'Bebas Neue',sans-serif;font-size:17px;letter-spacing:1px;color:var(--white);flex:1;}
.rll-stage-ct{font-family:'Source Code Pro',monospace;font-size:11px;color:rgba(224,216,200,0.72);}
.rll-chv{font-size:15px;color:rgba(224,216,200,0.72);transition:transform .2s;}
.rll-item.open .rll-chv{transform:rotate(180deg);}
.rll-body{display:none;padding:16px 18px;}
.rll-item.open .rll-body{display:block;}
.rll-entry{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.04);}
.rll-entry:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.rll-entry-stage{font-family:'Source Code Pro',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(155,114,207,0.72);margin-bottom:6px;}
.rll-entry-mech{font-size:14px;color:rgba(224,216,200,.75);line-height:1.7;margin-bottom:5px;}
.rll-entry-threshold{font-size:13px;color:rgba(224,216,200,0.72);line-height:1.6;}
.rll-entry-threshold strong{color:rgba(201,146,42,.75);}

/* \─\─ GOVERNANCE TRAIL PANEL \─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─ */
.gt-filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
.gt-filter-btn{padding:6px 14px;font-family:'Barlow Condensed',sans-serif;font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:rgba(224,216,200,0.72);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,0.75);cursor:pointer;transition:all .12s;}
.gt-filter-btn.active{color:var(--gold);background:rgba(201,146,42,0.75);border-color:rgba(201,146,42,0.72);}
.gt-entry{display:grid;grid-template-columns:140px 24px 1fr auto;gap:12px;align-items:start;padding:12px 16px;background:var(--navy2);border:1px solid rgba(255,255,255,.06);margin-bottom:3px;}
.gt-ts{font-family:'Source Code Pro',monospace;font-size:11px;color:rgba(201,146,42,0.72);line-height:1.5;}
.gt-line{width:1px;background:rgba(255,255,255,0.75);margin:0 auto;min-height:100%;}
.gt-body{}
.gt-event{font-size:14px;color:rgba(224,216,200,.8);line-height:1.55;margin-bottom:3px;}
.gt-member{font-family:'Source Code Pro',monospace;font-size:11px;color:rgba(224,216,200,0.72);}
.gt-hash{font-family:'Source Code Pro',monospace;font-size:10px;color:rgba(201,146,42,0.72);margin-top:2px;}
.gt-badge{font-family:'Source Code Pro',monospace;font-size:10px;letter-spacing:.8px;text-transform:uppercase;padding:2px 7px;flex-shrink:0;align-self:start;}
.gtb-marker{background:rgba(201,146,42,0.75);color:rgba(201,146,42,.7);border:1px solid rgba(201,146,42,0.75);}
.gtb-traj{background:rgba(155,114,207,0.75);color:#9B72CF;border:1px solid rgba(155,114,207,0.75);}
.gtb-auth{background:rgba(46,204,113,0.75);color:#2ECC71;border:1px solid rgba(46,204,113,0.75);}
.gtb-evidence{background:rgba(74,159,229,0.75);color:#80A8E0;border:1px solid rgba(74,159,229,0.75);}
.gt-export-row{display:flex;gap:10px;margin-top:12px;}

/* \─\─ TOAST \─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─\─ */
.ir-toast{position:fixed;bottom:28px;right:28px;padding:12px 18px;font-family:'Source Code Pro',monospace;font-size:12px;letter-spacing:1px;text-transform:uppercase;z-index:900;display:none;align-items:center;gap:10px;max-width:360px;}
.ir-toast.show{display:flex;}
.ir-toast.success{background:rgba(46,204,113,0.75);border:1px solid rgba(46,204,113,0.75);color:#2ECC71;}
.ir-toast.info{background:rgba(155,114,207,0.75);border:1px solid rgba(155,114,207,0.75);color:#9B72CF;}
.ir-toast.error{background:rgba(194,59,59,0.75);border:1px solid rgba(194,59,59,0.75);color:#E05555;}

/* Responsive */
@media(max-width:1100px){.ih-grid{grid-template-columns:1fr;}.ih-box{display:none;}.wq-grid{grid-template-columns:1fr 1fr;}.brief-body{grid-template-columns:1fr;}}
@media(max-width:900px){.ir-hero{padding:22px 16px 0;}.ih-h1{font-size:44px;}.ir-panel{padding:16px 16px 40px;}.ir-tabs-inner{padding:0 16px;overflow-x:auto;}.wq-grid{grid-template-columns:1fr;}.ow-grid{grid-template-columns:1fr;}.gt-entry{grid-template-columns:1fr;}.gt-line{display:none;}}
\", \"filename\": \"/home/claude/ir_css.txt\""
    },
    "approval_options": null,
    "approval_key": null,
    "is_mcp_app": null,
    "mcp_server_url": null
  },
  {
    "start_timestamp": null,
    "stop_timestamp": null,
    "flags": null,
    "type": "tool_result",
    "tool_use_id": "toolu_01MgATAkfxJNWRmNBqwVbBhy",
    "name": "create_file",
    "content": [
      {
        "type": "text",
        "text": "File created successfully: /home/claude/ir_css.txt",
        "uuid": "b82c87c4-05ea-4f09-b1a7-1af0dbc46b9e"
      }
    ],
    "is_error": false,
    "structured_content": null,
    "meta": null,
    "message": null,
    "integration_name": null,
    "mcp_server_url": null,
    "integration_icon_url": null,
    "icon_name": "file",
    "display_content": {
      "type": "text",
      "text": "File created successfully: /home/claude/ir_css.txt"
    }
  },
  {
    "start_timestamp": "2026-05-21T16:55:40.234422Z",
    "stop_timestamp": "2026-05-21T16:58:14.830342Z",
    "flags": null,
    "type": "tool_use",
    "id": "toolu_018iQGpBz6P3a2gAJusXCVV5",
    "name": "bash_tool",
    "input": {
      "command": "python3 << 'PYEOF'
import re, os, subprocess, tempfile

with open('/home/claude/ir_nav.txt') as f: NAV = f.read()
with open('/home/claude/ir_head.txt') as f: HEAD = f.read()
with open('/home/claude/ir_style.txt') as f: STYLE = f.read()
with open('/home/claude/ir_footer.txt') as f: FOOTER = f.read()
with open('/home/claude/ir_css.txt') as f: PAGE_CSS = f.read()

# ── DATA ────────────────────────────────────────────────────────────

QUEUE_ITEMS = {
    \"Markers Pending Review\": [
        (\"Debt-to-GDP ratio exceeds 85% — Nigeria\",\"review\"),
        (\"CHIPS export control — dual-use semiconductor classification\",\"auth\"),
        (\"CFA Franc reserve drawdown > 15% in 90 days\",\"review\"),
    ],
    \"Trajectory Authorizations\": [
        (\"Sahel Agricultural Corridor — Stage 2 upgrade\",\"auth\"),
        (\"Taiwan Strait Deterrence — new trajectory submission\",\"auth\"),
    ],
    \"New Evidence Items\": [
        (\"IMF Staff Report — Nigeria Article IV 2026\",\"new\"),
        (\"LME Cobalt spot — 7-day anomaly confirmed\",\"new\"),
        (\"CBN monetary policy statement Q2 2026\",\"new\"),
    ],
}

def wq_items_html(items, badge_cls_map):
    return '
'.join(f'''<div class=\"wq-item\" onclick=\"showToast('info','{item[0][:40]}u2026')\">
  <span class=\"wq-item-name\">{item[0]}</span>
  <span class=\"wq-item-badge wib-{item[1]}\">{item[1]}</span>
</div>''' for item in items)

WQ_HTML = f'''
<div class=\"wq-card urgent\">
  <div class=\"wq-card-h\">Markers Pending Review</div>
  <div class=\"wq-card-sub\">AI-proposed markers awaiting Inner Room structure check and approval</div>
  <div class=\"wq-items\">{wq_items_html(QUEUE_ITEMS[\"Markers Pending Review\"],{})}</div>
  <div style=\"margin-top:10px\"><a href=\"EWOX_Marker_Builder.html\" class=\"btn-secondary\" style=\"padding:7px 16px;font-size:13px;display:inline-flex;align-items:center;gap:6px\"><i class=\"ti ti-tools\"></i> Open Marker Builder</a></div>
</div>
<div class=\"wq-card pending\">
  <div class=\"wq-card-h\">Trajectory Authorizations</div>
  <div class=\"wq-card-sub\">Trajectory submissions awaiting dual Inner Room countersignature</div>
  <div class=\"wq-items\">{wq_items_html(QUEUE_ITEMS[\"Trajectory Authorizations\"],{})}</div>
  <div style=\"margin-top:10px\"><a href=\"EWOX_Trajectory_Builder.html\" class=\"btn-secondary\" style=\"padding:7px 16px;font-size:13px;display:inline-flex;align-items:center;gap:6px\"><i class=\"ti ti-git-branch\"></i> Open Trajectory Builder</a></div>
</div>
<div class=\"wq-card new\">
  <div class=\"wq-card-h\">New Evidence Items</div>
  <div class=\"wq-card-sub\">Evidence submitted for review and attachment to marker ledgers</div>
  <div class=\"wq-items\">{wq_items_html(QUEUE_ITEMS[\"New Evidence Items\"],{})}</div>
  <div style=\"margin-top:10px\"><a href=\"EWOX_Marker_Builder.html#evidence\" class=\"btn-secondary\" style=\"padding:7px 16px;font-size:13px;display:inline-flex;align-items:center;gap:6px\"><i class=\"ti ti-paperclip\"></i> Review Evidence</a></div>
</div>'''

BRIEFS = [
    (\"Sovereign Debt Restructuring Arc\",\"co\",\"Converging\",\"2026-05-21\",
     \"Stage 3.4 holding. IMF Article IV confirmed overnight. Eurobond spread sustained above 800bps for Day 61.\",
     \"CBN Governor statement anticipated within 72 hours. Watch for parallel FX premium approaching 40% threshold.\",
     \"Stage 3 confirmation at 5/5 markers. Capital posture: reduce sovereign exposure, increase hedge on FX. Optionality window narrowing.\"),
    (\"CHIPS Act Enforcement\",\"ha\",\"Hardened\",\"2026-05-21\",
     \"Stage 4 locked. No overnight marker changes. FEOC compliance deadline confirmed at Q4 2026.\",
     \"Congressional hearing on semiconductor export controls scheduled 2026-06-04. Watch for waiver language.\",
     \"Stage 4 full confirmation. Capital posture: overweight domestic semiconductor supply chain, underweight FEOC-exposed names.\"),
    (\"EU Gas Phase-Out Trajectory\",\"ha\",\"Hardened\",\"2026-05-21\",
     \"Stage 4 holding. Energy Security Mandate vote passed second reading in European Parliament overnight.\",
     \"Third reading scheduled 2026-06-12. Watch for amendment weakening the 2035 phase-out deadline.\",
     \"Stage 4 confirmed. Capital posture: long carbon-neutral infrastructure, monitor delay risk for timeline-sensitive positions.\"),
]

def brief_card(traj, stage_cls, stage_label, date, overnight, watch, implication):
    return f'''<div class=\"brief-card\">
  <div class=\"brief-head\">
    <span class=\"brief-traj\">{traj}</span>
    <span class=\"brief-stage bs-{stage_cls}\">{stage_label}</span>
    <span class=\"brief-date\">{date}</span>
  </div>
  <div class=\"brief-body\">
    <div class=\"brief-col\">
      <div class=\"brief-col-label\">Overnight Confirmations</div>
      <div class=\"brief-col-text\">{overnight}</div>
    </div>
    <div class=\"brief-col\">
      <div class=\"brief-col-label\">Watch</div>
      <div class=\"brief-col-text\">{watch}</div>
    </div>
    <div class=\"brief-col\">
      <div class=\"brief-col-label\">Capital Posture Implication</div>
      <div class=\"brief-col-text\">{implication}</div>
    </div>
  </div>
  <div class=\"brief-markers\">
    <span style=\"font-family:Source Code Pro,monospace;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(224,216,200,0.72)\">Markers:</span>
    <span class=\"brief-marker-pill bmp-conf\"><i class=\"ti ti-check\" style=\"font-size:9px\"></i>Conf: 5</span>
    <span class=\"brief-marker-pill bmp-pend\"><i class=\"ti ti-clock\" style=\"font-size:9px\"></i>Pend: 1</span>
    <a href=\"EWOX_Marker_Builder.html\" class=\"brief-marker-pill bmp-new\" style=\"text-decoration:none\"><i class=\"ti ti-external-link\" style=\"font-size:9px\"></i>Open Ledger</a>
  </div>
</div>'''

BRIEFS_HTML = '
'.join(brief_card(*b) for b in BRIEFS)

PP_CHAINS = [
    (\"Sovereign Debt Restructuring Arc — Nigeria\", \"4/6\", 67, [
        (\"IMF Article IV with DSA concerns published\",\"Confirmed overnight\",\"conf\",\"2026-05-21\"),
        (\"Eurobond spread above 800bps — 60+ days\",\"Confirmed — Day 61\",\"conf\",\"2026-05-21\"),
        (\"G20 Common Framework creditor meeting convened\",\"Confirmed — 2026-04-12\",\"conf\",\"2026-04-12\"),
        (\"CBN debt service threshold breach acknowledged\",\"Pending — expected 72h\",\"pend\",None),
        (\"Parallel FX premium exceeds 40% for 30 days\",\"Not yet confirmed — 35% current\",\"fut\",None),
        (\"Formal IMF program request submitted\",\"Not yet — dependent on Step 4\",\"fut\",None),
    ]),
    (\"CHIPS Act Enforcement\", \"5/6\", 83, [
        (\"CHIPS Act signed into law\",\"Confirmed — 2022-08-09\",\"conf\",\"2022-08-09\"),
        (\"Commerce Dept FEOC rule published\",\"Confirmed — 2024-12-01\",\"conf\",\"2024-12-01\"),
        (\"First enforcement action against FEOC-linked firm\",\"Confirmed — 2026-03-14\",\"conf\",\"2026-03-14\"),
        (\"Allied nation alignment — joint enforcement statement\",\"Confirmed — 2026-04-30\",\"conf\",\"2026-04-30\"),
        (\"FEOC compliance deadline Q4 2026 confirmed\",\"Confirmed — 2026-05-10\",\"conf\",\"2026-05-10\"),
        (\"Full enforcement regime operational — no waiver\",\"Pending — Q4 2026\",\"pend\",None),
    ]),
]

NODE_CLS = {\"conf\":\"ppd-confirmed\",\"pend\":\"ppd-pending\",\"fut\":\"ppd-future\"}
NODE_ICON = {\"conf\":\"ti-check\",\"pend\":\"ti-clock\",\"fut\":\"ti-minus\"}
STATUS_CLS = {\"conf\":\"pps-conf\",\"pend\":\"pps-pend\",\"fut\":\"pps-fut\"}
STATUS_TXT = {\"conf\":\"Confirmed\",\"pend\":\"Pending\",\"fut\":\"Future\"}

def pp_chain_html(traj, progress, pct, nodes):
    nodes_html = ''
    for name, desc, status, ts in nodes:
        icon = NODE_ICON[status]
        ts_html = f'<div class=\"pp-node-ts\"><i class=\"ti ti-check\" style=\"font-size:10px\"></i> {ts}</div>' if ts else ''
        nodes_html += f'''<div class=\"pp-node\">
  <div class=\"pp-node-dot {NODE_CLS[status]}\"><i class=\"ti {icon}\" style=\"font-size:10px\"></i></div>
  <div class=\"pp-node-body\">
    <div class=\"pp-node-name\">{name}</div>
    <div class=\"pp-node-desc\">{desc}</div>
    {ts_html}
  </div>
  <span class=\"pp-node-status {STATUS_CLS[status]}\">{STATUS_TXT[status]}</span>
</div>'''
    return f'''<div class=\"pp-chain\">
  <div class=\"pp-chain-head\" onclick=\"this.closest('.pp-chain').classList.toggle('pp-open');this.querySelector('i').style.transform=this.closest('.pp-chain').classList.contains('pp-open')?'rotate(180deg)':''\">
    <span class=\"pp-chain-traj\">{traj}</span>
    <span class=\"pp-chain-progress\">{progress} confirmed</span>
    <span class=\"pp-chain-pct\">{pct}%</span>
    <i class=\"ti ti-chevron-down\" style=\"font-size:14px;color:rgba(224,216,200,0.72);transition:transform .2s\"></i>
  </div>
  <div class=\"pp-nodes\" style=\"display:none\" id=\"ppn-{traj[:8].replace(' ','_')}\">
    {nodes_html}
  </div>
</div>'''

PP_HTML = '
'.join(pp_chain_html(*c) for c in PP_CHAINS)

OW_CARDS = [
    (\"Sovereign Debt Restructuring Arc\",\"narrowing\",\"Window is narrowing. Stage 3 confirmation imminent. Capital repositioning must occur before Stage 4 lock-in or it becomes reactive.\",\"14 days\",\"68\"),
    (\"CHIPS Act Enforcement\",\"closed\",\"Window closed at Stage 4 lock-in. Supply chain repositioning is now reactive. The optionality window closed when FEOC compliance deadline was confirmed.\",\"0 days\",\"100\"),
    (\"EU Gas Phase-Out\",\"open\",\"Window open. Stage 4 confirmed but final legislative text not yet sealed. Amendment risk remains. Strategic positioning still has structural basis.\",\"38 days\",\"42\"),
    (\"Eastern Flank Deterrence\",\"narrowing\",\"Stage 3 convergence accelerating. Alliance deterrence credibility markers confirming. Window for defensive positioning narrowing ahead of Stage 4.\",\"21 days\",\"55\"),
    (\"FEOC Compliance Exposure\",\"open\",\"Stage 2 accumulating. Multiple independent signals building but not yet converging. Full strategic optionality window open.\",\"90+ days\",\"22\"),
    (\"DRC Cobalt Export Restriction\",\"narrowing\",\"Stage 4 hardening. Export restriction framework under legislative review. Supply chain optionality window narrow and closing.\",\"11 days\",\"74\"),
]

def ow_card(traj, status, desc, time_left, pct):
    badge_cls = f\"owb-{status}\"
    card_cls = f\"ow-{status}\"
    meter_cls = f\"owm-{status}\"
    status_label = {\"open\":\"Window Open\",\"narrowing\":\"Narrowing\",\"closed\":\"Window Closed\"}[status]
    dot_icon = {\"open\":\"ti-circle-check\",\"narrowing\":\"ti-clock-hour-4\",\"closed\":\"ti-circle-x\"}[status]
    return f'''<div class=\"ow-card {card_cls}\">
  <span class=\"ow-window-badge {badge_cls}\"><i class=\"ti {dot_icon}\" style=\"font-size:11px\"></i>{status_label}</span>
  <div class=\"ow-traj-name\">{traj}</div>
  <div class=\"ow-desc\">{desc}</div>
  <div class=\"ow-meter\"><div class=\"ow-meter-fill {meter_cls}\" style=\"width:{pct}%\"></div></div>
  <div class=\"ow-meter-label\"><span>Open</span><span>Closed</span></div>
  <div style=\"display:flex;align-items:flex-end;justify-content:space-between;margin-top:10px\">
    <div><div class=\"ow-time-left\">{time_left}</div><div class=\"ow-time-sub\">Estimated window remaining</div></div>
    <a href=\"EWOX_Trajectories.html\" class=\"btn-secondary\" style=\"padding:6px 12px;font-size:12px\"><i class=\"ti ti-arrow-right\"></i> Trajectory</a>
  </div>
</div>'''

OW_HTML = '
'.join(ow_card(*c) for c in OW_CARDS)

OZ_ITEMS = [
    (\"OPEC+ informal communication suggesting output cut discussion\",\"Commodities & Resources\",\"sc-commodities\",\"2026-05-19\",\"2\"),
    (\"Zambian copper export permits — processing delay of 3+ weeks reported\",\"Commodities & Resources\",\"sc-commodities\",\"2026-05-18\",\"2\"),
    (\"Mongolian rare earth export licensing — new application requirements published\",\"Commodities & Resources\",\"sc-commodities\",\"2026-05-17\",\"1\"),
    (\"CFA Zone — two central bank governors co-authored paper on monetary autonomy\",\"Sovereign & Geopolitics\",\"sc-sovereign\",\"2026-05-15\",\"2\"),
    (\"Indonesian nickel — Ministry of Energy reviewing foreign processing agreements\",\"Commodities & Resources\",\"sc-commodities\",\"2026-05-14\",\"1\"),
    (\"EU Defence Fund — three member states requesting bilateral override mechanism\",\"Sovereign & Geopolitics\",\"sc-sovereign\",\"2026-05-12\",\"2\"),
]
SECTOR_COLS = {
    \"sc-commodities\": (\"#CCA06A\",\"rgba(138,74,26,0.75)\",\"rgba(138,74,26,0.75)\"),
    \"sc-sovereign\":   (\"#E07070\",\"rgba(139,32,32,0.75)\",\"rgba(139,32,32,0.75)\"),
}
def oz_item_html(signal, sector, sec_cls, date, obs_count):
    col, bg, bdr = SECTOR_COLS.get(sec_cls, (\"#80A8E0\",\"rgba(26,74,138,0.75)\",\"rgba(26,74,138,0.75)\"))
    return f'''<div class=\"oz-item\">
  <div class=\"oz-item-left\">
    <div class=\"oz-count\">{obs_count}</div>
    <div class=\"oz-count-sub\">obs.</div>
  </div>
  <div class=\"oz-item-body\">
    <div class=\"oz-item-signal\">{signal}</div>
    <div class=\"oz-item-meta\">
      <span class=\"oz-sector\" style=\"color:{col};background:{bg};border-color:{bdr}\">{sector}</span>
      <span class=\"oz-date\">{date}</span>
      <span class=\"oz-promote\" onclick=\"showToast('info','Promoting to trajectory nominationu2026')\">Promote u2192 Trajectory</span>
    </div>
  </div>
</div>'''

OZ_HTML = '
'.join(oz_item_html(*i) for i in OZ_ITEMS)

RLL_DATA = [
    (\"Sovereign Debt Restructuring Arc\", [
        (\"Stage 1 u2192 2\",\"Signal accumulation threshold: 2+ independent data sources confirm deteriorating debt metrics. No single data point sufficient.\",
         \"Threshold: <strong>2 independent confirmations</strong> within 90 days. IMF, World Bank, or sovereign rating agency as primary authority.\"),
        (\"Stage 2 u2192 3\",\"Expert consensus convergence: Inner Room calibration committee achieves 75%+ agreement on Stage 3 readiness. Eurobond spread sustained.\",
         \"Threshold: <strong>75% Inner Room consensus</strong> + Eurobond spread above 600bps for 30+ days. Reverts to Stage 2 if spread normalises below 400bps for 45 days.\"),
        (\"Stage 3 u2192 4\",\"Full confirmation: All 5 Stage 3 markers confirmed. IMF program or formal restructuring engagement initiated.\",
         \"Threshold: <strong>5/5 Stage 3 markers confirmed</strong> + formal IMF engagement or creditor committee convened. No partial confirmation accepted.\"),
    ]),
    (\"CHIPS Act Enforcement\", [
        (\"Stage 3 u2192 4\",\"First enforcement action taken. FEOC compliance deadline confirmed in federal register.\",
         \"Threshold: <strong>First enforcement action</strong> against a named entity + FEOC compliance deadline confirmed. Both required simultaneously.\"),
        (\"Stage 4 u2192 5\",\"Full enforcement operational. Allied co-enforcement in place. No waivers outstanding.\",
         \"Threshold: <strong>Zero active waivers</strong> + allied enforcement confirmed in 2+ jurisdictions. Terminal: no reversal mechanism documented.\"),
    ]),
]

def rll_html(traj, entries):
    entries_html = '
'.join(f'''<div class=\"rll-entry\">
  <div class=\"rll-entry-stage\">{e[0]}</div>
  <div class=\"rll-entry-mech\">{e[1]}</div>
  <div class=\"rll-entry-threshold\">{e[2]}</div>
</div>''' for e in entries)
    return f'''<div class=\"rll-item\">
  <div class=\"rll-head\" onclick=\"this.closest('.rll-item').classList.toggle('open')\">
    <span class=\"rll-traj\">{traj}</span>
    <span class=\"rll-stage-ct\">{len(entries)} transition rules</span>
    <i class=\"ti ti-chevron-down rll-chv\"></i>
  </div>
  <div class=\"rll-body\">{entries_html}</div>
</div>'''

RLL_HTML = '
'.join(rll_html(*r) for r in RLL_DATA)

GT_ENTRIES = [
    (\"2026-05-21
09:14 UTC\",\"Marker approved: IMF Article IV with DSA concerns — Sovereign Debt Arc Stage 3\",\"jude@shanaka.com u00b7 Inner Room\",\"a3f8u2026c12d\",\"marker\"),
    (\"2026-05-20
14:22 UTC\",\"Evidence attached: IMF Staff Report Nigeria 2026 to Marker 1 — Sovereign Debt Arc\",\"jude@shanaka.com u00b7 Inner Room\",\"b7e2u202644a1\",\"evidence\"),
    (\"2026-05-19
11:03 UTC\",\"Trajectory authorized (first): Taiwan Strait Deterrence — awaiting countersignature\",\"jude@shanaka.com u00b7 Inner Room\",\"c9d4u2026f83b\",\"traj\"),
    (\"2026-05-18
08:41 UTC\",\"Marker authorized: FEOC compliance deadline confirmed — CHIPS Act Stage 4\",\"anon-IR-0217 u00b7 Inner Room\",\"d2e5u202677cc\",\"auth\"),
    (\"2026-05-17
16:55 UTC\",\"Stage upgrade authorized: CHIPS Act Stage 3 u2192 Stage 4 — dual authorization complete\",\"jude@shanaka.com + anon-IR-0217\",\"e1f9u202688dd\",\"auth\"),
]

def gt_html(ts, event, member, hash_val, badge_type):
    cls = f\"gtb-{badge_type}\"
    label = {\"marker\":\"Marker\",\"evidence\":\"Evidence\",\"traj\":\"Trajectory\",\"auth\":\"Authorization\"}[badge_type]
    return f'''<div class=\"gt-entry\">
  <div class=\"gt-ts\">{ts}</div>
  <div class=\"gt-line\"></div>
  <div class=\"gt-body\">
    <div class=\"gt-event\">{event}</div>
    <div class=\"gt-member\">{member}</div>
    <div class=\"gt-hash\">SHA-256 u00b7 {hash_val}</div>
  </div>
  <span class=\"gt-badge {cls}\">{label}</span>
</div>'''

GT_HTML = '
'.join(gt_html(*e) for e in GT_ENTRIES)

JS = r\"\"\"
function switchIRTab(id,btn){
  document.querySelectorAll('.ir-tab').forEach(b=>b.classList.remove('active'));
  document.querySelectorAll('.ir-panel').forEach(p=>p.classList.remove('active'));
  if(btn) btn.classList.add('active');
  var panel=document.getElementById('ir-'+id);
  if(panel) panel.classList.add('active');
  // Handle anchor navigation
  if(window.location.hash) {
    var target=document.getElementById(window.location.hash.replace('#',''));
    if(target) target.scrollIntoView({behavior:'smooth'});
  }
  window.scrollTo({top:0,behavior:'smooth'});
}
function filterOZ(btn){
  document.querySelectorAll('.oz-filter-btn').forEach(b=>b.classList.remove('active'));
  btn.classList.add('active');
}
function filterGT(btn){
  document.querySelectorAll('.gt-filter-btn').forEach(b=>b.classList.remove('active'));
  btn.classList.add('active');
}
// Handle anchor hash on load
window.addEventListener('load',function(){
  var hash=window.location.hash;
  var tabMap={
    '#briefs':'briefs','#pressure-points':'pressure',
    '#optionality':'optionality','#observation-zone':'observation',
    '#resolution-library':'resolution','#governance-trail':'governance'
  };
  if(hash && tabMap[hash]){
    var tabId=tabMap[hash];
    var btn=document.querySelector('[data-irt='+tabId+']');
    if(btn) switchIRTab(tabId,btn);
  }
});
var toastTimer=null;
function showToast(type,msg){
  var t=document.getElementById('irToast');if(!t) return;
  clearTimeout(toastTimer);
  t.className='ir-toast '+type+' show';
  t.querySelector('.ir-toast-msg').textContent=msg;
  toastTimer=setTimeout(()=>t.classList.remove('show'),3500);
}
\"\"\"

HTML = f\"\"\"
/* ── FOOTER LINK FIXES ── */
.footer-links a{cursor:pointer;pointer-events:auto}
.footer-links a:hover{color:var(--white);text-decoration:underline;text-underline-offset:3px}
footer{position:relative;z-index:1}
.footer-social{cursor:pointer;pointer-events:auto}


/* ── Hub/Page switcher ── */




/* ── CSS :target routing (works without JS) ── */








/* ── CSS-only hub hiding (sibling combinator, all browsers) ── */
.page:target ~ 

/* ── Sections always visible, anchor-scroll friendly ── */
#hub { display: block; }
.page {
  display: block !important;
  border-top: 1px solid rgba(201,146,42,0.75);
  padding-top: 0;
  scroll-margin-top:152px;
}
