:root{--s1:#1A0E08;--s2:#6B3210;--s3:#C47A3A;--s4:#E8C77B;--s5:#3D6B4F;--s6:#122920;--rift:#F0E6D3;--lt:#F5F0E8;--dk:#0C0A08;--fire:#d35;--d:'BioRhyme',serif;--b:'Familjen Grotesk',sans-serif;--m:'Geist Mono',monospace;color-scheme:dark}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--dk);color:var(--rift);font-family:var(--b);overflow:hidden;height:100vh;height:100dvh}
::selection{background:rgba(196,122,58,.25);color:var(--lt)}
::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(26,14,8,.08);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:rgba(26,14,8,.15)}

#gl{position:fixed;top:0;left:0;width:44vw;height:100vh;height:100dvh;z-index:0}
.gl-edge{position:fixed;top:0;left:44vw;width:100px;height:100vh;height:100dvh;background:linear-gradient(90deg,transparent,rgba(14,12,10,.98));z-index:1;pointer-events:none;transform:translateX(-100%)}

/* ─── TOP BAR ─── */
.top{position:fixed;top:0;left:0;width:44vw;z-index:10;padding:14px 28px;display:flex;align-items:center;gap:14px;background:linear-gradient(rgba(12,10,8,.85) 0%,rgba(12,10,8,.4) 60%,transparent 100%);pointer-events:none;opacity:0}
.top>*{pointer-events:auto}
.logo-wrap{display:flex;align-items:center;gap:12px}
.logo-text{font-family:var(--d);font-weight:300;font-size:20px;color:var(--rift);letter-spacing:-.02em}
.tag{font-size:10px;color:rgba(240,230,211,.35);letter-spacing:1px;font-family:var(--d);font-weight:300}
.top-r{margin-left:auto;display:flex;gap:8px;align-items:center}
.bdg{font-size:9px;padding:5px 14px;border-radius:6px;font-family:var(--d);font-weight:400;letter-spacing:.02em;border:1px solid rgba(240,230,211,.1);background:rgba(240,230,211,.04);transition:all .2s;cursor:pointer;user-select:none}
.bdg:hover{background:rgba(240,230,211,.08);border-color:rgba(240,230,211,.15)}
.bdg-l{color:rgba(240,230,211,.55);border-color:rgba(240,230,211,.15)}
.bdg-l::before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--s5);margin-right:6px;animation:ep 2s infinite;vertical-align:middle}
.bdg-b{color:var(--s3);border-color:rgba(196,122,58,.25);background:rgba(196,122,58,.06)}
/* User badge / Join */
.user-badge{font-family:var(--d);font-size:11px;font-weight:400;letter-spacing:0;padding:6px 16px;border-radius:4px;cursor:pointer;transition:all .25s}
.join-btn{color:var(--rift);border:1px solid rgba(196,122,58,.5);background:rgba(196,122,58,.15);position:relative;overflow:hidden}
.join-btn:hover{background:rgba(196,122,58,.3);transform:translateY(-1px);box-shadow:0 4px 16px rgba(196,122,58,.15)}
.join-btn::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(240,230,211,.08),transparent);transform:translateX(-100%);animation:joinShimmer 3s infinite}
@keyframes joinShimmer{0%{transform:translateX(-100%)}40%,100%{transform:translateX(100%)}}
.user-info{color:var(--rift);border:1px solid rgba(240,230,211,.15);background:rgba(240,230,211,.06);cursor:pointer;display:flex;gap:8px;align-items:center;transition:all .25s}
.user-info:hover{background:rgba(240,230,211,.1);border-color:rgba(240,230,211,.2)}
.ep-num{color:var(--s3);font-weight:500}
.cred-badge{font-family:var(--m);font-size:9px;font-weight:400;padding:2px 6px;border-radius:3px;letter-spacing:.03em;background:rgba(240,230,211,.08);color:rgba(240,230,211,.5)}
.cred-badge.cred-prov{background:rgba(240,230,211,.06);color:rgba(240,230,211,.3)}
.cred-badge.cred-master{background:rgba(232,199,123,.2);color:var(--s4)}
.cred-badge.cred-expert{background:rgba(196,122,58,.2);color:var(--s3)}
.cred-badge.cred-verified{background:rgba(61,107,79,.2);color:var(--s5)}
.user-logout{font-size:9px;color:rgba(240,230,211,.2);cursor:pointer;margin-left:4px;transition:color .2s}
.user-logout:hover{color:rgba(240,230,211,.5)}
.adm-btn{font-size:9px!important;padding:3px 8px!important;background:rgba(240,230,211,.04)!important;border:1px solid rgba(240,230,211,.08)!important;margin-left:6px;cursor:pointer}
.adm-btn:hover{background:rgba(240,230,211,.08)!important;border-color:rgba(240,230,211,.15)!important}

/* ─── CARD STAGE — right panel with solid background ─── */
.card-stage{position:fixed;top:0;right:0;width:56vw;height:100vh;height:100dvh;z-index:5;display:flex;flex-direction:column;pointer-events:none;opacity:0;background:#0d0b09;border-left:1px solid rgba(240,230,211,.03)}
.card-stage>*{pointer-events:auto}
.card-stage-head{flex-shrink:0;padding:20px 24px 0;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid rgba(240,230,211,.04)}
.stage-title-row{display:flex;align-items:center;gap:12px}
.stage-title{font-family:var(--d);font-size:20px;font-weight:200;color:var(--rift);letter-spacing:-.02em}
.stage-count{font-family:var(--m);font-size:10px;color:rgba(240,230,211,.2)}
.stage-actions{margin-left:auto;display:flex;gap:8px;align-items:center}
.bdg-help{font-size:11px;padding:4px 10px;border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center}
.panel-nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:6px 0 10px}
.card-search{display:flex}
.card-search input{width:100%;height:40px;border:1px solid rgba(240,230,211,.08);border-radius:10px;padding:0 16px;font-family:var(--b);font-size:13px;color:var(--rift);background:rgba(240,230,211,.03);outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
.card-search input:focus{border-color:rgba(196,122,58,.3);box-shadow:0 0 0 3px rgba(196,122,58,.06);background:rgba(240,230,211,.05)}
.card-search input::placeholder{color:rgba(240,230,211,.18)}
.card-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;padding:20px 24px 100px;align-content:start}
.card-grid::-webkit-scrollbar{width:3px}.card-grid::-webkit-scrollbar-track{background:transparent}.card-grid::-webkit-scrollbar-thumb{background:rgba(240,230,211,.08);border-radius:2px}

/* ─── UNIFIED CONTROL BAR — bottom of card panel ─── */
.control-bar{position:fixed;bottom:0;right:0;width:56vw;z-index:8;background:rgba(12,10,8,.98);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4);border-top:1px solid rgba(240,230,211,.08);display:flex;flex-direction:column;opacity:0;transition:opacity .6s}
.dock-row{display:flex;gap:2px;padding:6px 10px;align-items:center}
.dock-tab{font-family:var(--d);font-size:11px;font-weight:300;padding:6px 14px;border-radius:6px;color:rgba(240,230,211,.3);cursor:pointer;transition:color .1s,background .1s,border-color .1s,transform .1s;white-space:nowrap;border:1px solid transparent}
.dock-tab:hover{color:rgba(240,230,211,.5);background:rgba(240,230,211,.04)}
.dock-tab:active{transform:scale(.95)}
.dock-tab.active{color:var(--rift);background:rgba(240,230,211,.08);border-color:rgba(240,230,211,.1)}
.dock-sep{width:1px;height:16px;background:rgba(240,230,211,.06);margin:0 4px;flex-shrink:0}
.dock-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:rgba(240,230,211,.25);font-size:12px;transition:all .15s;flex-shrink:0;border:1px solid transparent}
.dock-icon:hover{color:rgba(240,230,211,.5);background:rgba(240,230,211,.04)}
.dock-icon.active{color:var(--s3);background:rgba(196,122,58,.1);border-color:rgba(196,122,58,.15)}
.tl-row{display:flex;align-items:center;gap:8px;padding:0 12px 8px;max-height:0;opacity:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1),opacity .2s,padding .3s}
.tl-row.open{max-height:40px;opacity:1;padding:4px 12px 8px}

/* ─── SORT BAR — above card grid ─── */
.sort-bar{display:flex;align-items:center;gap:6px;flex-shrink:0;padding:2px 0;flex-wrap:wrap}
.sort-pill{font-family:var(--d);font-size:9px;font-weight:300;padding:4px 12px;border-radius:5px;color:rgba(240,230,211,.35);cursor:pointer;transition:all .15s;border:1px solid transparent;white-space:nowrap}
.sort-pill:hover{color:rgba(240,230,211,.55);background:rgba(240,230,211,.04)}
.sort-pill.active{color:var(--rift);background:rgba(240,230,211,.08);border-color:rgba(240,230,211,.12)}
.sort-count{font-family:var(--m);font-size:8px;color:rgba(240,230,211,.15);margin-left:auto;white-space:nowrap}

/* ─── GRID CARD ─── */
.gc{padding:0;border-radius:14px;background:rgba(18,16,14,.96);border:1px solid rgba(240,230,211,.06);cursor:pointer;position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:220px;transition:transform .3s cubic-bezier(.16,1,.3,1),border-color .3s,box-shadow .4s}
.gc:hover{transform:translateY(-3px);border-color:rgba(240,230,211,.14);box-shadow:0 24px 64px rgba(0,0,0,.5),0 8px 24px rgba(0,0,0,.3)}
.gc::after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(600px circle at var(--mx,50%) var(--my,50%),rgba(240,230,211,.04),transparent 40%);opacity:0;transition:opacity .3s;pointer-events:none;z-index:0}
.gc:hover::after{opacity:1}
/* System color accent — see .gc::before at line ~1025 */
/* Settled card — subtle tinted background */
.gc-settled-card{background:rgba(18,20,18,.96);border-color:rgba(68,170,153,.08)}
.gc-settled-card:hover{border-color:rgba(68,170,153,.18)}

/* ── Head row ── */
.gc-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 0}
.gc-sys{font-family:var(--m);font-size:9px;font-weight:500;letter-spacing:.6px;text-transform:uppercase;color:var(--sys-col);opacity:.85}
.gc-head-r{display:flex;align-items:center;gap:8px}
.gc-live-dot{font-family:var(--m);font-size:8px;letter-spacing:.5px;text-transform:uppercase;color:rgba(68,170,153,.7);display:flex;align-items:center;gap:5px}
.gc-live-dot::before{content:'';width:5px;height:5px;border-radius:50%;background:#4a9;box-shadow:0 0 6px rgba(68,170,153,.4);animation:ep 2s infinite}
.gc-demo-dot{font-family:var(--m);font-size:8px;letter-spacing:.5px;text-transform:uppercase;color:rgba(196,122,58,.3)}
.gc-cd{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.25);letter-spacing:.2px}
.gc-cd-hot{color:rgba(196,122,58,.55)}
.gc-cd-urgent{color:#d45;font-weight:600;animation:countdownPulse 2s ease-in-out infinite}
.gc-settled{font-family:var(--m);font-size:8px;font-weight:500;padding:3px 10px;border-radius:4px;letter-spacing:.3px}
.gc-settled-yes{background:rgba(68,170,153,.12);color:#4a9}
.gc-settled-no{background:rgba(196,122,58,.1);color:#c47a5a}

/* ── Question — always show in full ── */
.gc-q{font-family:var(--d);font-size:15px;font-weight:500;color:rgba(240,230,211,.92);line-height:1.4;padding:12px 18px 0;letter-spacing:-.015em}

/* ── Probability ── */
.gc-price-row{display:flex;align-items:baseline;gap:8px;padding:14px 18px 4px}
.gc-prob{font-family:var(--d);font-size:48px;font-weight:300;letter-spacing:-.05em;line-height:1;color:#4a9}
.gc-pct{font-family:var(--d);font-size:20px;font-weight:300;opacity:.5;margin-left:1px}
.gc-val{font-family:var(--d);font-size:36px;font-weight:200;letter-spacing:-.03em;line-height:1;color:rgba(240,230,211,.92)}
.gc-val-unit{font-family:var(--d);font-size:12px;font-weight:300;color:rgba(240,230,211,.3)}
.gc-delta{font-family:var(--m);font-size:10px;margin-left:auto;padding:3px 8px;border-radius:4px}
.gc-delta-up{color:#4a9;background:rgba(68,170,153,.08)}
.gc-delta-dn{color:#c47a5a;background:rgba(196,122,90,.08)}

/* ── Probability bar ── */
.gc-prob-bar{display:flex;height:6px;margin:6px 18px 0;border-radius:3px;overflow:hidden;gap:2px}
.gc-prob-yes{background:rgba(68,170,153,.45);border-radius:3px;transition:width .6s cubic-bezier(.16,1,.3,1)}
.gc-prob-no{flex:1;background:rgba(196,122,90,.12);border-radius:3px}

/* ── Chart — compact trend indicator ── */
.gc-chart{width:calc(100% - 36px);height:40px;display:block;margin:6px 18px 0}
.gc-chart polyline{fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

/* ── Action buttons — FILLED, not ghost ── */
.gc-actions{display:flex;gap:8px;padding:0 18px;margin-top:auto}
.gc-btn{flex:1;padding:10px 0;font-family:var(--d);font-size:14px;font-weight:500;cursor:pointer;text-align:center;border:none;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .15s;position:relative;overflow:hidden}
.gc-btn:active{transform:scale(.96);transition:transform .08s}
.gc-btn-yes{background:rgba(68,170,153,.1);color:#4a9;border:1px solid rgba(68,170,153,.15)}
.gc-btn-yes:hover{background:rgba(68,170,153,.2);border-color:rgba(68,170,153,.35);box-shadow:0 4px 16px rgba(68,170,153,.12)}
.gc-btn-no{background:rgba(196,122,90,.07);color:#c47a5a;border:1px solid rgba(196,122,90,.12)}
.gc-btn-no:hover{background:rgba(196,122,90,.16);border-color:rgba(196,122,90,.3);box-shadow:0 4px 16px rgba(196,122,90,.1)}
.gc-btn-price{font-family:var(--m);font-size:10px;opacity:.5}
/* Continuous card detail link */
.gc-detail-link{display:flex;align-items:center;justify-content:space-between;padding:8px 18px;margin-top:auto;font-family:var(--d);font-size:11px;font-weight:300;color:rgba(240,230,211,.2);transition:color .2s}
.gc:hover .gc-detail-link{color:rgba(240,230,211,.4)}
.gc-detail-arrow{font-size:14px;transition:transform .2s}
.gc:hover .gc-detail-arrow{transform:translateX(3px)}
/* ── Footer ── */
.gc-foot{display:flex;align-items:center;gap:8px;padding:12px 18px 16px;font-family:var(--m);font-size:11px;color:rgba(240,230,211,.25);margin-top:auto}
.gc-foot-src{color:rgba(240,230,211,.3);font-size:10px}
.gc-foot-vol{color:rgba(240,230,211,.4);font-weight:500}
.gc-foot-sep{opacity:.3}
.gc-foot-fc{color:rgba(240,230,211,.25)}
/* ── Settled outcome result line ── */
.gc-settled-result{padding:6px 18px 0;font-family:var(--m);font-size:10px;color:rgba(240,230,211,.3);display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}
.gc-sr-label{color:rgba(240,230,211,.2)}
.gc-sr-val{color:rgba(68,170,153,.7);font-weight:500}
.gc-sr-src{color:rgba(240,230,211,.15);font-size:9px}

/* Section headers in grid */
.gc-section{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:18px 0 8px}
.gc-section-title{font-family:var(--d);font-size:11px;font-weight:400;color:rgba(240,230,211,.35);letter-spacing:.06em;text-transform:uppercase}
.gc-section-line{flex:1;height:1px;background:rgba(240,230,211,.04)}
.gc-section-count{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.15)}
/* (toasts removed) */

/* EMM toggle badge */
.bdg-emm{color:var(--s5);border-color:rgba(61,107,79,.25);background:rgba(61,107,79,.06);cursor:pointer}
.bdg-emm::before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--s5);margin-right:6px;animation:ep 2s infinite;vertical-align:middle}
.bdg-emm.active{background:rgba(61,107,79,.15);border-color:rgba(61,107,79,.4)}
/* Live tier accent — stronger top stripe glow */
.gc-live-tier::before{opacity:.6}
.gc-live-tier:hover::before{opacity:.9}
/* Data source card in overlay */
.mkt-data-src{display:flex;flex-direction:column;gap:0}
.mkt-ds-row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid rgba(240,230,211,.02);font-family:var(--m);font-size:9px}
.mkt-ds-row span:first-child{color:rgba(240,230,211,.2)}
.mkt-ds-row span:last-child{color:rgba(240,230,211,.45);text-align:right}
/* Settled showcase */
/* (settled-header + active-header removed — using section headers now) */
/* Detection history table */
.mkt-det-table{width:100%;border-collapse:collapse;margin-top:8px}
.mkt-det-table th{font-family:var(--m);font-size:7px;text-transform:uppercase;letter-spacing:.8px;color:rgba(240,230,211,.15);text-align:left;padding:4px 6px;border-bottom:1px solid rgba(240,230,211,.04)}
.mkt-det-table td{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.35);padding:4px 6px;border-bottom:1px solid rgba(240,230,211,.02)}
.mkt-det-table td:last-child{color:rgba(240,230,211,.2)}

/* ─── VIEW OVERLAYS — portfolio, leaderboard ─── */
.view-overlay{position:fixed;inset:0;z-index:35;display:none}
.view-overlay.open{display:block}
.view-bg{position:fixed;inset:0;background:rgba(12,10,8,.8);backdrop-filter:blur(12px);z-index:35}
.view-box{position:fixed;top:60px;left:50%;transform:translateX(-50%);width:min(700px,calc(100vw - 40px));bottom:60px;z-index:36;background:rgba(12,10,8,.92);backdrop-filter:blur(40px);border:1px solid rgba(240,230,211,.06);border-radius:12px;overflow-y:auto;overscroll-behavior:contain;animation:modalIn .4s cubic-bezier(.16,1,.3,1);padding:0}
.view-box::-webkit-scrollbar{width:3px}.view-box::-webkit-scrollbar-track{background:transparent}.view-box::-webkit-scrollbar-thumb{background:rgba(240,230,211,.08);border-radius:2px}
.view-close{padding:16px 22px;font-family:var(--d);font-size:12px;font-weight:300;color:var(--s3);cursor:pointer;border-bottom:1px solid rgba(240,230,211,.04);display:flex;align-items:center;gap:8px;position:sticky;top:0;background:rgba(12,10,8,.95);backdrop-filter:blur(12px);z-index:2}
.view-close:hover{color:var(--rift)}
.view-title{font-family:var(--d);font-size:22px;font-weight:200;color:var(--rift);padding:20px 22px 10px;letter-spacing:-.02em}
/* Portfolio in overlay — dark theme */
.pf-summary{padding:18px 22px;border-bottom:1px solid rgba(240,230,211,.04)}
.pf-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:1px;background:rgba(240,230,211,.03);border-radius:6px;overflow:hidden;margin-top:10px}
.pf-stat{background:rgba(12,10,8,.5);padding:12px 10px}
.pf-stat-label{font-family:var(--d);font-size:9px;font-weight:300;color:rgba(240,230,211,.35);margin-bottom:3px}
.pf-stat-val{font-family:var(--d);font-size:20px;font-weight:200;color:var(--rift)}
.pf-positions{padding:10px 22px}
.pf-pos{padding:12px 0;border-bottom:1px solid rgba(240,230,211,.03);transition:background .2s}
.pf-pos:hover{background:rgba(240,230,211,.02)}
.pf-pos-q{font-size:12px;color:var(--rift);margin-bottom:5px;font-family:var(--d);font-weight:400;letter-spacing:-.01em}
.pf-pos-meta{font-family:var(--b);font-size:10px;color:rgba(240,230,211,.3);letter-spacing:0;display:flex;gap:10px}
.pf-pos-meta .your-v{color:var(--s5);font-weight:500}
.pf-identity{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.pf-cred-lg{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:14px;border-radius:50%}
.pf-pos-header{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.25);padding:0 0 8px;border-bottom:1px solid rgba(240,230,211,.04);margin-bottom:4px;letter-spacing:.3px;text-transform:uppercase}
.pf-pos-link{cursor:pointer}
.pf-pos-link:hover{background:rgba(196,122,58,.04)}
.pf-sys-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;vertical-align:middle;flex-shrink:0}
.pf-cta{font-family:var(--d);font-size:11px;font-weight:400;padding:8px 20px;background:rgba(196,122,58,.12);border:1px solid rgba(196,122,58,.2);border-radius:5px;color:var(--s3);cursor:pointer;transition:all .2s}
.pf-cta:hover{background:rgba(196,122,58,.2);transform:translateY(-1px)}
.pf-tx-head{border-bottom:1px solid rgba(240,230,211,.06)!important;margin-bottom:2px}
.pf-tx-head .pf-tx-label,.pf-tx-head .pf-tx-amt,.pf-tx-head .pf-tx-bal,.pf-tx-head .pf-tx-date{font-family:var(--m)!important;font-size:8px!important;color:rgba(240,230,211,.2)!important;text-transform:uppercase;letter-spacing:.4px}
.pf-empty{padding:40px 22px;text-align:center;color:rgba(240,230,211,.2);font-size:12px;line-height:1.6}
.pf-retry-btn{margin-top:12px;padding:6px 18px;border:1px solid rgba(240,230,211,.1);border-radius:5px;background:rgba(240,230,211,.04);color:rgba(240,230,211,.4);font-family:var(--b);font-size:11px;cursor:pointer;transition:background .15s,color .15s}
.pf-retry-btn:hover{background:rgba(240,230,211,.08);color:rgba(240,230,211,.6)}
.pf-ledger{margin-top:20px;padding-top:16px;border-top:1px solid rgba(240,230,211,.04)}
.pf-ledger-title{font-family:var(--m);font-size:10px;color:rgba(240,230,211,.35);margin-bottom:10px}
.pf-tx{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid rgba(240,230,211,.03);font-size:10px}
.pf-tx-label{flex:1;font-family:var(--d);font-size:10px;color:rgba(240,230,211,.4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-tx-amt{font-family:var(--m);font-size:10px;width:60px;text-align:right}
.pf-tx-up{color:var(--s5)}.pf-tx-dn{color:#d35}
.pf-tx-bal{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.2);width:48px;text-align:right}
.pf-tx-date{font-family:var(--m);font-size:8px;color:rgba(240,230,211,.15);width:40px;text-align:right}
/* Leaderboard in overlay — dark theme */
.lb-tabs{display:flex;gap:4px;padding:0 20px 12px;flex-wrap:wrap}
.lb-tab{font-family:var(--d);font-size:9px;font-weight:400;letter-spacing:.04em;text-transform:uppercase;padding:4px 10px;border-radius:4px;border:1px solid rgba(240,230,211,.06);background:transparent;color:rgba(240,230,211,.3);cursor:pointer;transition:all .15s}
.lb-tab:hover{background:rgba(196,122,58,.06);color:rgba(240,230,211,.5)}
.lb-tab-active{background:rgba(196,122,58,.1);color:var(--rift);border-color:rgba(196,122,58,.15)}
.lb-table{width:100%;border-collapse:collapse;font-size:11px}
.lb-table th{font-family:var(--d);font-size:9px;font-weight:400;color:rgba(240,230,211,.35);text-align:left;padding:10px 8px 10px 22px;border-bottom:1px solid rgba(240,230,211,.04);position:sticky;top:0;background:rgba(12,10,8,.95);backdrop-filter:blur(8px)}
.lb-table td{padding:8px 8px 8px 22px;border-bottom:1px solid rgba(240,230,211,.03);color:rgba(240,230,211,.35);transition:background .15s}
.lb-table tr:hover td{background:rgba(196,122,58,.04)}
.lb-table tr.you-row td{background:rgba(232,199,123,.06)}
.lb-table td:first-child{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.2);width:28px}
.lb-name{font-weight:500;color:var(--rift);font-size:11px;cursor:pointer}
.lb-brier{font-family:var(--m);font-size:10px;color:var(--rift);font-weight:500}
.lb-badge{font-family:var(--d);font-size:9px;font-weight:400;padding:2px 6px;border-radius:3px}
.lb-badge-master{background:rgba(232,199,123,.08);color:#9a7d2e}
.lb-badge-expert{background:rgba(61,107,79,.06);color:var(--s5)}
.lb-badge-verified{background:rgba(100,149,237,.08);color:#7a9fdf}
.lb-badge-active{background:rgba(240,230,211,.04);color:rgba(240,230,211,.35)}
.lb-badge-base{background:rgba(240,230,211,.03);color:rgba(240,230,211,.2)}
.lb-prov{font-family:var(--m);font-size:7px;color:rgba(240,230,211,.2);margin-left:4px;letter-spacing:.5px}
.lb-cred{font-family:var(--m);font-size:10px;color:var(--rift);font-weight:500}
.view-loading{font-family:var(--d);font-size:12px;font-weight:300;color:rgba(240,230,211,.2);text-align:center;padding:48px 20px;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:8px}
.view-spinner{display:inline-block;width:14px;height:14px;border:1.5px solid rgba(240,230,211,.08);border-top-color:var(--s3);border-radius:50%;animation:viewSpin .7s linear infinite}
@keyframes viewSpin{to{transform:rotate(360deg)}}
/* Profile (rendered in lb-box) */
.prof-content{padding:0 22px 22px}
.prof-hero{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.prof-cred{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:16px;border-radius:50%}
.prof-tier{font-family:var(--d);font-size:15px;font-weight:200;color:var(--rift)}
.prof-meta{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.25);margin-top:2px}
.prof-section{margin-top:20px;padding-top:16px;border-top:1px solid rgba(240,230,211,.04)}
.prof-section-title{font-family:var(--m);font-size:10px;color:rgba(240,230,211,.35);margin-bottom:10px;text-transform:uppercase;letter-spacing:.4px}
.prof-sys-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid rgba(240,230,211,.03);font-size:11px;color:rgba(240,230,211,.4)}
.prof-sys-row span:first-child{text-transform:capitalize;color:rgba(240,230,211,.55)}
.prof-pos{padding:8px 0;border-bottom:1px solid rgba(240,230,211,.03);transition:background .15s}
.prof-pos:hover{background:rgba(240,230,211,.02)}
.prof-pos-q{font-size:11px;color:rgba(240,230,211,.55)}
.prof-pos-meta{display:flex;gap:12px;font-family:var(--m);font-size:9px;color:rgba(240,230,211,.2);margin-top:3px}
.prof-pos-up{color:var(--s5)}
.prof-pos-dn{color:var(--fire,#d35)}

/* ─── ECOLOGICAL CONTEXT (Calculator API) ─── */
.eco-ctx{border:1px solid rgba(61,107,79,.12);border-radius:8px;padding:12px 14px;background:rgba(61,107,79,.03);animation:fadeSlide .4s ease both}
.eco-score{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.eco-score-ring{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--d);font-size:16px;font-weight:200;color:var(--rift);position:relative}
.eco-score-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}
.eco-score-ring circle{fill:none;stroke-width:3;stroke-linecap:round}
.eco-score-meta{flex:1}
.eco-dims{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin-bottom:8px}
.eco-dim{display:flex;align-items:center;gap:6px;font-family:var(--m);font-size:8px;color:rgba(240,230,211,.35)}
.eco-dim-bar{flex:1;height:3px;border-radius:2px;background:rgba(240,230,211,.06);overflow:hidden}
.eco-dim-fill{height:100%;border-radius:2px;background:var(--s5);transition:width .6s ease}
.eco-threat{display:inline-flex;align-items:center;gap:4px;font-family:var(--m);font-size:8px;padding:2px 8px;border-radius:3px}
.eco-threat-low{color:var(--s5);background:rgba(61,107,79,.1)}
.eco-threat-med{color:var(--s3);background:rgba(196,122,58,.08)}
.eco-threat-high{color:#e05555;background:rgba(224,85,85,.08)}
.eco-loading{display:flex;align-items:center;gap:6px;font-family:var(--m);font-size:9px;color:rgba(240,230,211,.2)}
.eco-loading::before{content:'';width:12px;height:12px;border:1.5px solid rgba(240,230,211,.1);border-top-color:var(--s5);border-radius:50%;animation:ecoSpin .8s linear infinite}
@keyframes ecoSpin{to{transform:rotate(360deg)}}
/* ─── EMM SIGNAL BADGE on cards ─── */
.gc-emm-sig{display:flex;align-items:center;gap:4px;font-family:var(--m);font-size:7.5px;color:rgba(61,107,79,.65);margin-top:4px;padding-top:4px;border-top:1px solid rgba(240,230,211,.03)}
.gc-emm-sig::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--s5);flex-shrink:0;animation:ep 2s infinite}

/* Shared keyframes */
@keyframes ep{0%,100%{opacity:1;box-shadow:0 0 6px rgba(61,107,79,.3)}50%{opacity:.4;box-shadow:0 0 2px rgba(61,107,79,.1)}}
@keyframes fadeSlide{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

/* ─── JOIN MODAL ─── */
.modal-overlay{position:fixed;inset:0;z-index:50;background:rgba(12,10,8,.75);backdrop-filter:blur(12px);display:none;align-items:center;justify-content:center}
.modal-overlay.show{display:flex}
.modal{background:var(--lt);border:1px solid rgba(26,14,8,.04);border-radius:12px;padding:36px 32px;width:360px;text-align:center;box-shadow:0 24px 64px rgba(0,0,0,.4),0 0 0 1px rgba(26,14,8,.02);animation:modalIn .4s cubic-bezier(.16,1,.3,1)}
@keyframes modalIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.modal h3{font-family:var(--d);font-size:20px;font-weight:300;color:var(--s1);margin-bottom:8px;letter-spacing:-.02em}
.modal p{font-size:11px;color:rgba(26,14,8,.3);margin-bottom:22px;line-height:1.6}
.modal input[type=text],.modal input[type=email],.modal input[type=password]{width:100%;height:38px;border:1px solid rgba(26,14,8,.06);border-radius:5px;padding:0 14px;font-family:var(--b);font-size:13px;color:var(--s1);background:white;outline:none;margin-bottom:14px;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}
.modal input:focus{border-color:var(--s3);box-shadow:0 0 0 3px rgba(196,122,58,.08)}
.auth-tabs{display:flex;gap:0;margin-bottom:16px;border-bottom:1px solid rgba(26,14,8,.06)}
.auth-tab{flex:1;padding:10px 0;font-family:var(--d);font-size:12px;font-weight:300;color:rgba(26,14,8,.25);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}
.auth-tab.active{color:var(--s1);border-bottom-color:var(--s3)}
.auth-subtitle{font-size:11px;color:rgba(26,14,8,.3);margin-bottom:18px;line-height:1.6}
.auth-error{font-size:11px;color:#c44;margin-bottom:10px;min-height:16px}
.auth-forgot{text-align:right;margin:-4px 0 8px}
.auth-forgot span{font-family:var(--d);font-size:10px;color:rgba(26,14,8,.3);cursor:pointer;transition:color .2s}
.auth-forgot span:hover{color:rgba(26,14,8,.5)}
.auth-success{font-size:11px;color:var(--s5);margin-bottom:10px;min-height:0}
.modal-btn{font-family:var(--d);font-size:12px;font-weight:400;letter-spacing:0;padding:10px 28px;background:var(--s1);color:var(--rift);border:none;border-radius:5px;cursor:pointer;transition:all .25s}
.modal-btn:hover{background:var(--s2);transform:translateY(-1px);box-shadow:0 4px 16px rgba(26,14,8,.2)}
.modal-btn:disabled,.modal-btn.auth-loading{opacity:.6;cursor:wait;transform:none;box-shadow:none}
.modal-cancel{font-family:var(--d);font-size:10px;font-weight:300;letter-spacing:0;padding:8px;color:rgba(26,14,8,.2);cursor:pointer;background:none;border:none;margin-left:8px;transition:color .2s}
.modal-cancel:hover{color:rgba(26,14,8,.4)}

/* ─── FORECAST CONFIRMATION ─── */
.fcc-overlay{position:fixed;inset:0;z-index:55;background:rgba(12,10,8,.8);backdrop-filter:blur(12px);display:none;align-items:center;justify-content:center}
.fcc-overlay.show{display:flex}
.fcc-box{background:var(--lt);border:1px solid rgba(26,14,8,.04);border-radius:12px;padding:32px;width:400px;text-align:center;box-shadow:0 24px 64px rgba(0,0,0,.4);animation:modalIn .4s cubic-bezier(.16,1,.3,1)}
.fcc-title{font-family:var(--d);font-size:18px;font-weight:300;color:var(--s1);margin-bottom:16px}
.fcc-q{font-family:var(--d);font-size:13px;font-weight:400;color:rgba(26,14,8,.4);line-height:1.35;margin-bottom:16px}
.fcc-val{font-family:var(--d);font-size:42px;font-weight:200;color:var(--s1);letter-spacing:-.04em;margin-bottom:4px}
.fcc-unit{font-size:16px;font-weight:300;color:rgba(26,14,8,.3)}
.fcc-stake{font-family:var(--d);font-size:11px;font-weight:300;color:var(--s3);margin-bottom:16px}
.fcc-compare{display:flex;justify-content:center;gap:24px;font-family:var(--d);font-size:11px;font-weight:300;color:rgba(26,14,8,.25);margin-bottom:24px}
.fcc-btns{display:flex;gap:12px;justify-content:center}
.fcc-cancel{font-family:var(--d);font-size:11px;font-weight:300;padding:10px 20px;background:none;border:1px solid rgba(26,14,8,.08);border-radius:5px;color:rgba(26,14,8,.3);cursor:pointer;transition:all .2s}
.fcc-cancel:hover{border-color:rgba(26,14,8,.15);color:rgba(26,14,8,.5)}
.fcc-submit{font-family:var(--d);font-size:12px;font-weight:400;padding:10px 24px;background:var(--s1);color:var(--rift);border:none;border-radius:5px;cursor:pointer;transition:all .2s}
.fcc-submit:hover{background:var(--s2);transform:translateY(-1px);box-shadow:0 4px 16px rgba(26,14,8,.2)}
.fcc-submit.loading{opacity:.5;pointer-events:none}
.fcc-error{font-family:var(--d);font-size:11px;font-weight:300;color:#d35;text-align:center;padding:8px 0;margin-bottom:4px}
.fcc-success{font-family:var(--d);font-size:14px;font-weight:400;color:var(--s5);text-align:center;padding:32px 16px;letter-spacing:.02em}

/* ─── EMAIL CAPTURE ─── */
.email-overlay{position:fixed;inset:0;z-index:56;background:rgba(12,10,8,.75);backdrop-filter:blur(12px);display:none;align-items:center;justify-content:center}
.email-overlay.show{display:flex}
.email-box{background:var(--lt);border:1px solid rgba(26,14,8,.04);border-radius:12px;padding:32px;width:380px;text-align:center;box-shadow:0 24px 64px rgba(0,0,0,.4);animation:modalIn .4s cubic-bezier(.16,1,.3,1);position:relative}
.email-close{position:absolute;top:12px;right:16px;font-size:20px;color:rgba(26,14,8,.15);cursor:pointer;transition:color .2s}
.email-close:hover{color:rgba(26,14,8,.4)}
.email-title{font-family:var(--d);font-size:20px;font-weight:300;color:var(--s5);margin-bottom:8px}
.email-sub{font-family:var(--b);font-size:12px;color:rgba(26,14,8,.35);line-height:1.6;margin-bottom:20px}
.email-input{width:100%;height:40px;border:1px solid rgba(26,14,8,.06);border-radius:5px;padding:0 14px;font-family:var(--b);font-size:13px;color:var(--s1);background:white;outline:none;margin-bottom:12px;transition:border-color .2s}
.email-input:focus{border-color:var(--s5);box-shadow:0 0 0 3px rgba(61,107,79,.08)}
.email-btn{font-family:var(--d);font-size:12px;font-weight:400;width:100%;padding:10px;background:var(--s5);color:white;border:none;border-radius:5px;cursor:pointer;transition:all .2s;margin-bottom:8px}
.email-btn:hover{background:var(--s6);transform:translateY(-1px)}
.email-skip{font-family:var(--d);font-size:10px;font-weight:300;color:rgba(26,14,8,.2);cursor:pointer;transition:color .2s}
.email-skip:hover{color:rgba(26,14,8,.4)}

/* ─── HERO ─── */
/* hero removed — replaced by data ticker */
.hero{display:none}

/* ─── TICKER ─── */
/* bottom ticker removed — data ticker above control bar replaces it */
.ticker{display:none!important}

/* Tooltip */
.tip{position:fixed;z-index:20;pointer-events:none;opacity:0;transition:opacity .2s,transform .2s;transform:translateY(4px);background:rgba(12,10,8,.97);backdrop-filter:blur(20px);border:1px solid rgba(240,230,211,.06);padding:14px 18px;border-radius:8px;font-size:11px;color:rgba(240,230,211,.5);max-width:260px;line-height:1.45;box-shadow:0 8px 32px rgba(0,0,0,.4)}
.tip.show{opacity:1;transform:translateY(0)}
.tip-cat{font-size:9px;letter-spacing:1px;text-transform:uppercase;margin-bottom:6px;font-family:var(--d);font-weight:400}
.tip-val{font-size:20px;font-weight:200;font-family:var(--d);color:var(--rift);margin-top:8px;letter-spacing:-.02em}

/* (left panel removed — EMM is now a full overlay) */
.ld-close{position:sticky;top:0;z-index:2;display:flex;align-items:center;padding:14px 20px;background:rgba(12,10,8,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(240,230,211,.03)}
.ld-close-btn{cursor:pointer;color:rgba(240,230,211,.25);font-size:16px;margin-right:10px;transition:all .2s;padding:2px 6px;border-radius:4px}
.ld-close-btn:hover{color:var(--rift);background:rgba(240,230,211,.05)}
.ld-close-cat{font-family:var(--d);font-size:10px;font-weight:400;letter-spacing:1px;text-transform:uppercase;color:rgba(240,230,211,.2)}
.ld-close-type{font-family:var(--d);font-size:10px;font-weight:300;letter-spacing:0;color:rgba(240,230,211,.1);margin-left:auto}

.ld-body{padding:22px}
.ld-q{font-family:var(--d);font-size:20px;font-weight:300;color:var(--rift);line-height:1.35;margin-bottom:18px;letter-spacing:-.02em}
.ld-big{display:flex;align-items:baseline;gap:8px;margin-bottom:18px}
.ld-big-num{font-family:var(--d);font-size:48px;font-weight:200;color:var(--rift);letter-spacing:-.04em;line-height:1}
.ld-big-unit{font-family:var(--d);font-size:11px;font-weight:300;color:rgba(240,230,211,.3);letter-spacing:0}
.ld-big-label{font-family:var(--d);font-size:9px;font-weight:400;letter-spacing:0;color:var(--s3);margin-left:auto;padding:3px 8px;background:rgba(196,122,58,.06);border-radius:3px}

.ld-bar{height:4px;background:rgba(240,230,211,.05);border-radius:2px;overflow:hidden;margin-bottom:22px}
.ld-bar-fill{height:100%;border-radius:2px;transition:width 1.2s cubic-bezier(.16,1,.3,1)}

.ld-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:rgba(240,230,211,.03);border-radius:8px;overflow:hidden;margin-bottom:22px}
.ld-stat{background:rgba(12,10,8,.5);padding:12px 14px}
.ld-stat-label{font-family:var(--d);font-size:8px;font-weight:300;color:rgba(240,230,211,.2);margin-bottom:3px}
.ld-stat-val{font-family:var(--d);font-size:18px;font-weight:200;color:var(--rift)}

.ld-section{margin-bottom:20px}
.ld-section-title{font-family:var(--d);font-size:10px;font-weight:300;color:rgba(240,230,211,.2);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid rgba(240,230,211,.03);display:flex;align-items:center;gap:8px}
.ld-section-title::after{content:'';flex:1;height:1px;background:rgba(240,230,211,.03)}

.ld-res{font-size:11px;color:rgba(240,230,211,.3);line-height:1.7}
.ld-res strong{color:rgba(240,230,211,.6);font-weight:500}

.ld-bt-bars{display:flex;gap:2px;align-items:flex-end;height:36px;margin-bottom:6px}
.ld-bt-b{flex:1;border-radius:2px 2px 0 0;min-width:4px;transition:opacity .2s}
.ld-bt-b.ok{background:var(--s5);opacity:.45}.ld-bt-b.no{background:var(--s3);opacity:.2}
.ld-bt-b:hover{opacity:.8!important}
.ld-bt-info{font-family:var(--b);font-size:9px;color:rgba(240,230,211,.2);letter-spacing:0}

.ld-comm-hist{display:flex;gap:2px;align-items:flex-end;height:40px;margin-bottom:6px}
.ld-comm-bar{flex:1;border-radius:2px 2px 0 0;background:rgba(240,230,211,.07);transition:height .4s,opacity .2s}
.ld-comm-bar:hover{opacity:.8}
.ld-comm-bar.yours{background:var(--s3)!important}
.ld-comm-stats{display:flex;gap:12px;font-family:var(--d);font-size:9px;font-weight:300;color:rgba(240,230,211,.2);letter-spacing:0}

.ld-pills{display:flex;gap:4px;flex-wrap:wrap;margin-top:16px}
.ld-pill{font-family:var(--d);font-size:9px;font-weight:300;padding:3px 8px;border-radius:3px;letter-spacing:0;border:1px solid rgba(240,230,211,.05);color:rgba(240,230,211,.15);transition:all .2s}
.ld-pill:hover{border-color:rgba(240,230,211,.12);color:rgba(240,230,211,.3)}

.ld-settled{padding:16px;border-radius:8px;border:1px solid;margin-bottom:18px;position:relative;overflow:hidden}
.ld-settled::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;border-radius:2px 2px 0 0}
.ld-settled.yes{background:rgba(61,107,79,.04);border-color:rgba(61,107,79,.12)}
.ld-settled.yes::before{background:var(--s5)}
.ld-settled.no{background:rgba(196,122,58,.04);border-color:rgba(196,122,58,.12)}
.ld-settled.no::before{background:var(--s3)}
.ld-settled-outcome{font-family:var(--d);font-size:18px;font-weight:200;color:var(--rift);margin-bottom:8px}
.ld-settled-detail{font-family:var(--b);font-size:10px;color:rgba(240,230,211,.3);line-height:1.7;letter-spacing:0}
.ld-settled-hash{font-family:var(--m);font-size:8px;color:rgba(240,230,211,.1);margin-top:8px;word-break:break-all;padding-top:6px;border-top:1px solid rgba(240,230,211,.03)}

/* ─── WELCOME — minimal intro card ─── */
/* ─── WELCOME — hero center, EMM right, sky background ─── */
.welcome{position:fixed;inset:0;z-index:100;pointer-events:auto;transition:opacity 1.2s cubic-bezier(.4,0,.2,1)}
.welcome.gone{opacity:0;pointer-events:none;transition:opacity 1.6s cubic-bezier(.4,0,.2,1)}
/* No hard vignette — let the dark sky body bg show through everywhere */
.welcome::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 22% 50%,transparent 0%,rgba(12,10,8,.15) 35%,rgba(12,10,8,.3) 100%);z-index:0;transition:opacity 1s}
.welcome.gone::before{opacity:0}
/* Hide the gl-edge fade during welcome so sky extends seamlessly */
.welcome ~ .gl-edge{opacity:0;transition:opacity 1s}
.welcome.gone ~ .gl-edge{opacity:1}
@keyframes wFadeUp{to{opacity:1;transform:translateY(0)}}

/* Hero — centered on the globe, nudged right 10% */
.ws-left{position:absolute;left:max(calc(44vw + 24px),calc(50% + 5vw - 200px));top:50%;transform:translateY(-50%);z-index:1;pointer-events:auto}
.ws-card{position:relative;width:clamp(280px,calc(52vw - 368px),400px);text-align:center}
.ws-logo{opacity:0;transform:translateY(12px);animation:wFadeUp .6s ease forwards .3s;display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:20px}
.ws-logo-text{font-family:var(--d);font-size:22px;font-weight:300;color:var(--rift);letter-spacing:-.02em}
.ws-headline{font-family:var(--d);font-size:34px;font-weight:200;color:var(--rift);letter-spacing:-.03em;line-height:1.2;margin-bottom:10px;opacity:0;transform:translateY(12px);animation:wFadeUp .6s ease forwards .45s}
.ws-sub{font-family:var(--d);font-size:13.5px;font-weight:300;color:rgba(240,230,211,.45);line-height:1.65;margin-bottom:28px;opacity:0;transform:translateY(12px);animation:wFadeUp .6s ease forwards .55s}
.ws-steps{text-align:left;display:flex;flex-direction:column;gap:12px;margin-bottom:26px;opacity:0;transform:translateY(12px);animation:wFadeUp .5s ease forwards .65s}
.ws-step{display:flex;gap:12px;align-items:flex-start}
.ws-step-num{flex-shrink:0;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(196,122,58,.25);font-family:var(--m);font-size:10px;font-weight:400;color:var(--s3);margin-top:1px}
.ws-step strong{font-family:var(--d);font-size:13px;font-weight:400;color:rgba(240,230,211,.85);letter-spacing:-.01em;display:block;margin-bottom:2px}
.ws-step p{font-family:var(--d);font-size:11px;font-weight:300;color:rgba(240,230,211,.5);line-height:1.5;margin:0}
.ws-actions{display:flex;gap:10px;justify-content:center;opacity:0;transform:translateY(12px);animation:wFadeUp .5s ease forwards .78s;margin-bottom:12px}
.ws-cta{font-family:var(--d);font-size:14px;font-weight:400;letter-spacing:.02em;padding:12px 36px;border-radius:8px;cursor:pointer;transition:all .25s ease;border:none}
.ws-cta-primary{background:rgba(240,230,211,.08);color:var(--rift);border:1px solid rgba(240,230,211,.15)}
.ws-cta-primary:hover{background:rgba(240,230,211,.14);border-color:rgba(240,230,211,.25);transform:translateY(-1px);box-shadow:0 4px 20px rgba(0,0,0,.3)}
.ws-actions-alt{opacity:0;animation:wFadeUp .5s ease forwards .88s;transform:translateY(8px);display:flex;align-items:center;justify-content:center;gap:10px}
.ws-alt-link{font-family:var(--d);font-size:11px;font-weight:300;color:rgba(240,230,211,.25);cursor:pointer;transition:color .2s;letter-spacing:.02em}
.ws-alt-link:hover{color:rgba(240,230,211,.5)}
.ws-alt-sep{color:rgba(240,230,211,.1);font-size:10px}

/* EMM — right side, pulled in from edge, stretched vertically */
.ws-right{position:absolute;right:max(4vw,calc(50% - 5vw - 700px));top:0;bottom:0;width:320px;display:flex;align-items:center;justify-content:center;z-index:1;pointer-events:auto}
.ws-emm{opacity:0;transform:translateY(16px);animation:wFadeUp .6s ease forwards .6s;text-align:left;width:100%;max-width:320px;padding:22px 20px;background:rgba(18,41,32,.14);border:1px solid rgba(61,107,79,.2);border-radius:10px;display:flex;flex-direction:column;gap:14px}
.ws-emm-head{display:flex;align-items:center;gap:7px}
.ws-emm-dot{width:6px;height:6px;border-radius:50%;background:var(--s5);box-shadow:0 0 8px rgba(61,107,79,.6);animation:ep 2s infinite;flex-shrink:0}
.ws-emm-label{font-family:var(--m);font-size:10px;font-weight:400;color:var(--s5);letter-spacing:.5px}
.ws-emm-name{font-family:var(--d);font-size:11px;font-weight:300;color:rgba(240,230,211,.6)}
.ws-emm-desc{font-family:var(--d);font-size:11.5px;font-weight:300;color:rgba(240,230,211,.55);line-height:1.6;margin:0}
.ws-emm-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ws-emm-stat{text-align:center;padding:10px 4px;background:rgba(240,230,211,.04);border:1px solid rgba(240,230,211,.08);border-radius:6px}
.ws-emm-stat-val{display:block;font-family:var(--m);font-size:16px;font-weight:300;color:var(--rift);letter-spacing:-.02em}
.ws-emm-stat-label{display:block;font-family:var(--d);font-size:8px;font-weight:300;color:rgba(240,230,211,.4);margin-top:2px;text-transform:uppercase;letter-spacing:.3px}
.ws-sources{display:flex;gap:6px;flex-wrap:wrap}
.ws-sources span{font-family:var(--m);font-size:8px;font-weight:300;color:rgba(240,230,211,.35);letter-spacing:.4px;padding:3px 8px;border:1px solid rgba(240,230,211,.1);border-radius:3px}

/* ─── EMM OVERLAY — full-page explorable ─── */
.emm-overlay{position:fixed;inset:0;z-index:85;display:none;align-items:center;justify-content:center;background:rgba(12,10,8,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);overflow-y:auto}
.emm-overlay.show{display:flex}
.emm-page{position:relative;width:100%;max-width:640px;padding:48px 40px 60px;margin:40px auto}
.emm-page-close{position:fixed;top:20px;right:24px;font-size:24px;color:rgba(240,230,211,.3);cursor:pointer;transition:color .2s;z-index:86;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(240,230,211,.03);border:none;padding:0;font-family:inherit;line-height:1}
.emm-page-close:hover{color:rgba(240,230,211,.6);background:rgba(240,230,211,.06)}
.ep-hero{text-align:center;margin-bottom:48px}
.ep-hero-dot{width:10px;height:10px;border-radius:50%;background:var(--s5);animation:ep 2s infinite;margin:0 auto 16px}
.ep-hero-title{font-family:var(--d);font-size:28px;font-weight:200;color:var(--rift);letter-spacing:-.02em;margin-bottom:4px}
.ep-hero-sub{font-family:var(--d);font-size:13px;font-weight:300;color:rgba(240,230,211,.4)}
.ep-section{margin-bottom:40px}
.ep-section-title{font-family:var(--d);font-size:11px;font-weight:400;color:rgba(240,230,211,.3);letter-spacing:.5px;text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;gap:10px}
.ep-section-title::after{content:'';flex:1;height:1px;background:rgba(240,230,211,.04)}
.ep-desc{font-family:var(--d);font-size:13px;font-weight:300;color:rgba(240,230,211,.45);line-height:1.7;margin-bottom:16px}
.ep-pipeline{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ep-pipe{background:rgba(240,230,211,.02);border:1px solid rgba(240,230,211,.04);border-radius:8px;padding:14px 16px}
.ep-pipe-val{font-family:var(--m);font-size:18px;font-weight:300;color:var(--rift);letter-spacing:-.02em;margin-bottom:2px}
.ep-pipe-label{font-family:var(--d);font-size:10px;font-weight:300;color:rgba(240,230,211,.35)}
.ep-pipe-src{font-family:var(--m);font-size:8px;color:rgba(240,230,211,.15);margin-top:4px}
.ep-settled{display:flex;flex-direction:column;gap:10px}
.ep-settled-card{background:rgba(61,107,79,.04);border:1px solid rgba(61,107,79,.1);border-radius:8px;padding:14px 16px;position:relative}
.ep-settled-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--s5);border-radius:2px 0 0 2px;opacity:.5}
.ep-settled-q{font-family:var(--d);font-size:12px;font-weight:400;color:rgba(240,230,211,.6);margin-bottom:4px}
.ep-settled-outcome{font-family:var(--d);font-size:13px;font-weight:300;color:var(--s5);margin-bottom:4px}
.ep-settled-meta{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.2)}
.ep-settled-hash{font-family:var(--m);font-size:8px;color:rgba(61,107,79,.35);margin-top:4px;word-break:break-all}
.ep-signals{display:flex;flex-direction:column;gap:8px}
.ep-signal{display:flex;align-items:flex-start;gap:12px;padding:10px 14px;background:rgba(240,230,211,.015);border:1px solid rgba(240,230,211,.03);border-radius:6px}
.ep-signal-type{font-family:var(--m);font-size:8px;font-weight:400;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:3px;flex-shrink:0;margin-top:2px}
.ep-signal-type.t-signal{color:var(--s3);background:rgba(196,122,58,.08)}
.ep-signal-type.t-data{color:#5a7fbf;background:rgba(90,127,191,.08)}
.ep-signal-type.t-settlement{color:var(--s5);background:rgba(61,107,79,.08)}
.ep-signal-body{font-family:var(--d);font-size:11px;font-weight:300;color:rgba(240,230,211,.4);line-height:1.5;flex:1}
.ep-signal-time{font-family:var(--m);font-size:8px;color:rgba(240,230,211,.15);flex-shrink:0;margin-top:2px}
.ep-how{display:flex;flex-direction:column;gap:14px}
.ep-how-step{display:flex;gap:14px;align-items:flex-start}
.ep-how-num{width:24px;height:24px;border-radius:50%;border:1px solid rgba(61,107,79,.25);display:flex;align-items:center;justify-content:center;font-family:var(--m);font-size:11px;color:var(--s5);flex-shrink:0}
.ep-how-text{font-family:var(--d);font-size:12px;font-weight:300;color:rgba(240,230,211,.4);line-height:1.55}
.ep-how-text strong{color:rgba(240,230,211,.65);font-weight:400}
.ep-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.ep-stat{text-align:center;padding:14px 10px;background:rgba(240,230,211,.015);border:1px solid rgba(240,230,211,.03);border-radius:8px}
.ep-stat-val{font-family:var(--m);font-size:20px;font-weight:300;color:var(--rift);margin-bottom:2px}
.ep-stat-label{font-family:var(--d);font-size:9px;font-weight:300;color:rgba(240,230,211,.3)}

/* ─── ABOUT OVERLAY ─── */
.about-overlay{position:fixed;inset:0;z-index:85;display:none;align-items:flex-start;justify-content:center;background:rgba(12,10,8,.94);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);overflow-y:auto}
.about-overlay.show{display:flex}
.about-page{position:relative;width:100%;max-width:600px;padding:48px 40px 60px;margin:40px auto}
.about-page-close{position:fixed;top:20px;right:24px;font-size:24px;color:rgba(240,230,211,.3);cursor:pointer;transition:color .2s;z-index:86;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(240,230,211,.03);border:none;padding:0;font-family:inherit;line-height:1}
.about-page-close:hover{color:rgba(240,230,211,.6);background:rgba(240,230,211,.06)}
.ab-title{font-family:var(--d);font-size:28px;font-weight:200;color:var(--rift);letter-spacing:-.03em;margin-bottom:6px;text-align:center}
.ab-sub{font-family:var(--d);font-size:13px;font-weight:300;color:rgba(240,230,211,.4);text-align:center;margin-bottom:40px;line-height:1.6}
.ab-section{margin-bottom:36px}
.ab-section-title{font-family:var(--d);font-size:11px;font-weight:400;color:rgba(240,230,211,.3);letter-spacing:.5px;text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:10px}
.ab-section-title::after{content:'';flex:1;height:1px;background:rgba(240,230,211,.04)}
.ab-text{font-family:var(--d);font-size:13px;font-weight:300;color:rgba(240,230,211,.5);line-height:1.75}
.ab-text strong{color:rgba(240,230,211,.7);font-weight:400}
.ab-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ab-card{padding:16px;background:rgba(240,230,211,.02);border:1px solid rgba(240,230,211,.04);border-radius:8px}
.ab-card-title{font-family:var(--d);font-size:12px;font-weight:400;color:rgba(240,230,211,.7);margin-bottom:4px}
.ab-card-text{font-family:var(--d);font-size:11px;font-weight:300;color:rgba(240,230,211,.35);line-height:1.55}
.ab-flow{display:flex;flex-direction:column;gap:12px}
.ab-flow-step{display:flex;gap:14px;align-items:flex-start}
.ab-flow-num{width:24px;height:24px;border-radius:50%;border:1px solid rgba(61,107,79,.25);display:flex;align-items:center;justify-content:center;font-family:var(--m);font-size:11px;color:var(--s5);flex-shrink:0}
.ab-flow-text{font-family:var(--d);font-size:12px;font-weight:300;color:rgba(240,230,211,.45);line-height:1.55}
.ab-flow-text strong{color:rgba(240,230,211,.65);font-weight:400}
.ab-sources{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ab-source{padding:12px;background:rgba(240,230,211,.015);border:1px solid rgba(240,230,211,.03);border-radius:6px;text-align:center}
.ab-source-name{font-family:var(--m);font-size:10px;font-weight:400;color:rgba(240,230,211,.5);letter-spacing:.3px;margin-bottom:2px}
.ab-source-full{font-family:var(--d);font-size:9px;font-weight:300;color:rgba(240,230,211,.2)}

/* ─── WALKTHROUGH ─── */
.wt-overlay{position:fixed;inset:0;z-index:90;pointer-events:none;display:none}
.wt-overlay.active{display:block;pointer-events:auto}
.wt-backdrop{position:fixed;inset:0;background:rgba(12,10,8,.7);z-index:91;transition:opacity .4s}
/* Spotlight with breathing glow */
.wt-spotlight{position:fixed;z-index:93;border-radius:8px;transition:all .6s cubic-bezier(.16,1,.3,1);pointer-events:none;
box-shadow:0 0 0 9999px rgba(12,10,8,.72),0 0 40px rgba(196,122,58,.12),inset 0 0 0 2px rgba(196,122,58,.5);
animation:spotBreathe 3s ease-in-out infinite}
@keyframes spotBreathe{0%,100%{box-shadow:0 0 0 9999px rgba(12,10,8,.72),0 0 40px rgba(196,122,58,.12),inset 0 0 0 2px rgba(196,122,58,.5)}50%{box-shadow:0 0 0 9999px rgba(12,10,8,.72),0 0 60px rgba(196,122,58,.2),inset 0 0 0 2px var(--s4)}}
/* Highlighted target element */
.wt-highlighted{animation:wtHighlight .6s ease!important}
@keyframes wtHighlight{0%{transform:scale(1)}30%{transform:scale(1.015)}100%{transform:scale(1)}}
/* Tooltip — larger, bolder */
.wt-tooltip{position:fixed;z-index:94;background:rgba(245,240,232,.97);backdrop-filter:blur(24px);
border:1px solid rgba(26,14,8,.06);border-radius:14px;padding:28px 30px;max-width:400px;width:400px;
box-shadow:0 16px 48px rgba(0,0,0,.3),0 0 0 1px rgba(26,14,8,.03);pointer-events:auto}
.wt-tooltip.entering{animation:wtSlideIn .5s cubic-bezier(.16,1,.3,1)}
@keyframes wtSlideIn{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.wt-step-num{font-family:var(--d);font-size:10px;font-weight:400;letter-spacing:1px;text-transform:uppercase;color:var(--s3);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.wt-step-num::after{content:'';flex:1;height:1px;background:rgba(26,14,8,.06)}
.wt-title{font-family:var(--d);font-size:20px;font-weight:400;color:var(--s1);margin-bottom:12px;line-height:1.25;letter-spacing:-.02em}
.wt-desc{font-size:14px;color:rgba(26,14,8,.45);line-height:1.7;margin-bottom:20px}
.wt-desc em{color:var(--s1);font-style:normal;font-weight:600}
.wt-nav{display:flex;gap:8px;align-items:center}
.wt-next{font-family:var(--d);font-size:11px;font-weight:400;letter-spacing:0;padding:10px 26px;background:var(--s1);color:var(--rift);border:none;border-radius:5px;cursor:pointer;transition:all .2s}
.wt-next:hover{background:var(--s2);transform:translateY(-1px)}
.wt-exit{font-family:var(--d);font-size:10px;font-weight:300;letter-spacing:0;padding:8px 14px;background:transparent;color:rgba(26,14,8,.2);border:none;cursor:pointer;transition:color .2s}
.wt-exit:hover{color:rgba(26,14,8,.45)}
/* Progress bar instead of dots */
.wt-progress-bar{margin-top:16px;height:3px;background:rgba(26,14,8,.04);border-radius:2px;overflow:hidden}
.wt-progress-fill{height:100%;background:var(--s3);border-radius:2px;transition:width .5s ease}
/* Connector: pulsing circle + line */
.wt-connector{position:fixed;z-index:95;pointer-events:none;transition:all .5s cubic-bezier(.16,1,.3,1)}
.wt-conn-dot{width:12px;height:12px;border-radius:50%;background:var(--s3);position:absolute;animation:connPulse 2s ease-in-out infinite}
@keyframes connPulse{0%,100%{box-shadow:0 0 0 0 rgba(196,122,58,.4)}50%{box-shadow:0 0 0 8px rgba(196,122,58,0)}}
.wt-conn-line{position:absolute;background:var(--s3);opacity:.4}

/* ═══ MARKET OVERLAY — TradingView-grade market detail ═══ */
.mkt-overlay{position:fixed;inset:0;z-index:40;display:none;pointer-events:none}
.mkt-overlay.open{display:block;pointer-events:auto}
.mkt-backdrop{position:fixed;inset:0;background:rgba(10,8,6,.95);backdrop-filter:blur(24px);z-index:40;animation:mktFadeIn .3s ease}
@keyframes mktFadeIn{from{opacity:0}to{opacity:1}}

.mkt-container{position:fixed;top:0;left:0;right:0;bottom:0;z-index:41;display:flex;flex-direction:column;animation:mktSlideIn .4s cubic-bezier(.16,1,.3,1);padding:16px 32px 12px;overscroll-behavior:contain}
@keyframes mktSlideIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes mktSlideOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(12px)}}
@keyframes mktFadeOut{from{opacity:1}to{opacity:0}}

/* Header bar */
.mkt-head{display:flex;align-items:center;padding:0;background:#131110;border:1px solid rgba(240,230,211,.04);border-radius:10px 10px 0 0;gap:0;flex-shrink:0;flex-direction:column}
.mkt-strata{height:2px;display:flex;width:100%;border-radius:10px 10px 0 0;overflow:hidden;flex-shrink:0}
.mkt-strata div{flex:1}
.mkt-head-row{display:flex;align-items:center;width:100%;padding:8px 20px;gap:10px}
.mkt-head-close{cursor:pointer;color:rgba(240,230,211,.3);transition:color .15s;padding:4px 8px;font-family:var(--d);font-size:11px;font-weight:300;display:flex;align-items:center;gap:4px;border:none;background:none;line-height:1}
.mkt-head-close:hover{color:rgba(240,230,211,.7)}
.mkt-head-cat{font-family:var(--m);font-size:8px;padding:2px 8px;border-radius:3px;border:1px solid rgba(240,230,211,.08);color:rgba(240,230,211,.4)}
.mkt-head-type{font-family:var(--m);font-size:8px;color:rgba(240,230,211,.2)}
.mkt-head-cd{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.35);margin-left:auto;padding:2px 10px;background:rgba(240,230,211,.03);border-radius:3px}
.mkt-head-src{font-family:var(--m);font-size:8px;color:rgba(240,230,211,.15)}
.mkt-share{font-family:var(--m);font-size:8px;color:rgba(240,230,211,.3);cursor:pointer;padding:2px 8px;border:1px solid rgba(240,230,211,.06);border-radius:3px;transition:all .15s}
.mkt-share:hover{background:rgba(240,230,211,.04);border-color:rgba(240,230,211,.12);color:rgba(240,230,211,.5)}
.mkt-countdown{font-family:var(--m);font-size:10px;color:var(--s3);letter-spacing:.5px}
.mkt-head-live{display:flex;align-items:center;gap:5px;font-family:var(--d);font-size:9px;font-weight:400;color:var(--s5)}
.mkt-head-live::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--s5);animation:ep 2s infinite}

/* Hero bar — question + price + stats */
.mkt-hero-bar{background:#0f0d0a;border-left:1px solid rgba(240,230,211,.03);border-right:1px solid rgba(240,230,211,.03);padding:16px 24px 12px;flex-shrink:0;display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap}
.mkt-hb-q{font-family:var(--d);font-size:17px;font-weight:400;color:rgba(240,230,211,.9);line-height:1.3;letter-spacing:-.02em;flex:1;min-width:280px}
.mkt-hb-price{display:flex;align-items:baseline;gap:8px;flex-shrink:0}
.mkt-hb-val{font-family:var(--d);font-size:36px;font-weight:200;color:rgba(240,230,211,.95);letter-spacing:-.04em;line-height:1}
.mkt-hb-unit{font-family:var(--d);font-size:11px;font-weight:300;color:rgba(240,230,211,.3)}
.mkt-hb-change{font-family:var(--m);font-size:10px;padding:2px 8px;border-radius:3px;letter-spacing:.3px}
.mkt-hb-change.up{background:rgba(61,107,79,.12);color:var(--s5)}
.mkt-hb-change.down{background:rgba(196,122,58,.08);color:var(--s3)}
.mkt-hb-change.flat{background:rgba(240,230,211,.04);color:rgba(240,230,211,.3)}
.mkt-hb-stats{display:flex;gap:20px;flex-shrink:0}
.mkt-hb-stat{display:flex;flex-direction:column;gap:2px}
.mkt-hb-stat-label{font-family:var(--m);font-size:7px;color:rgba(240,230,211,.2);text-transform:uppercase;letter-spacing:.8px}
.mkt-hb-stat-val{font-family:var(--d);font-size:12px;font-weight:300;color:rgba(240,230,211,.55)}
.mkt-hb-live{display:flex;align-items:center;gap:5px;font-family:var(--m);font-size:8px;color:rgba(240,230,211,.25)}
.mkt-hb-live::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--s5);animation:ep 2s infinite}

/* Main body — 2 column TradingView layout */
.mkt-body{display:grid;grid-template-columns:1fr 320px;background:#0f0d0a;border-left:1px solid rgba(240,230,211,.03);border-right:1px solid rgba(240,230,211,.03);overflow:hidden;flex:1;min-height:0}

/* Main chart column */
.mkt-main{display:flex;flex-direction:column;overflow-y:auto;border-right:1px solid rgba(240,230,211,.03);mask-image:linear-gradient(transparent 0%,black 4px,black calc(100% - 4px),transparent 100%);-webkit-mask-image:linear-gradient(transparent 0%,black 4px,black calc(100% - 4px),transparent 100%)}

/* Chart container — hosts lightweight-charts */
.mkt-chart-wrap{padding:8px 20px 0;flex-shrink:0}
.mkt-chart-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;padding:0 4px}
.mkt-chart-label{font-family:var(--m);font-size:8px;color:rgba(240,230,211,.2);letter-spacing:.3px}
.mkt-tf-pills{display:flex;gap:2px}
.mkt-tf{font-family:var(--m);font-size:8px;padding:3px 10px;border-radius:4px;color:rgba(240,230,211,.25);cursor:pointer;transition:all .15s;border:1px solid transparent}
.mkt-tf:hover{color:rgba(240,230,211,.5);background:rgba(240,230,211,.04)}
.mkt-tf-active{color:var(--rift);background:rgba(240,230,211,.06);border-color:rgba(240,230,211,.08)}
.mkt-tv-chart{width:100%;height:380px;position:relative}
.mkt-tv-chart .tv-lightweight-charts{border-radius:4px}
/* Crosshair tooltip overlay */
.mkt-crosshair-tooltip{position:absolute;left:12px;top:8px;z-index:5;pointer-events:none;font-family:var(--m);font-size:10px;color:rgba(240,230,211,.5);display:flex;gap:12px;align-items:baseline}
.mkt-crosshair-tooltip .cxt-val{font-family:var(--d);font-size:18px;font-weight:200;color:rgba(240,230,211,.85)}
.mkt-crosshair-tooltip .cxt-time{font-size:9px;color:rgba(240,230,211,.25)}

/* Chart toolbar — indicator/fullscreen/screenshot controls */
.mkt-chart-toolbar{display:flex;align-items:center;gap:2px;padding:0 4px;margin-bottom:2px}
.mkt-ctl{font-family:var(--m);font-size:8px;padding:3px 8px;border-radius:3px;color:rgba(240,230,211,.2);cursor:pointer;transition:all .15s;border:1px solid transparent;display:flex;align-items:center;gap:3px;white-space:nowrap}
.mkt-ctl:hover{color:rgba(240,230,211,.45);background:rgba(240,230,211,.03)}
.mkt-ctl.active{color:var(--s3);background:rgba(196,122,58,.06);border-color:rgba(196,122,58,.08)}
.mkt-ctl svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.7}
.mkt-ctl-sep{width:1px;height:14px;background:rgba(240,230,211,.05);margin:0 2px;flex-shrink:0}
/* YES/NO probability toggle (Polymarket-style) */
.mkt-yn-toggle{display:flex;border:1px solid rgba(240,230,211,.06);border-radius:4px;overflow:hidden;margin-left:auto}
.mkt-yn-btn{font-family:var(--m);font-size:8px;padding:3px 12px;cursor:pointer;transition:all .15s;color:rgba(240,230,211,.2)}
.mkt-yn-btn:hover{color:rgba(240,230,211,.4)}
.mkt-yn-btn.yes-active{background:rgba(61,107,79,.12);color:var(--s5)}
.mkt-yn-btn.no-active{background:rgba(196,122,58,.08);color:var(--s3)}
/* Fullscreen chart mode */
.mkt-overlay.chart-fs .mkt-head,.mkt-overlay.chart-fs .mkt-hero-bar,.mkt-overlay.chart-fs .mkt-foot,.mkt-overlay.chart-fs .mkt-side,.mkt-overlay.chart-fs .mkt-main-sections{display:none!important}
.mkt-overlay.chart-fs .mkt-body{grid-template-columns:1fr!important}
.mkt-overlay.chart-fs .mkt-main{border-right:none!important}
.mkt-overlay.chart-fs .mkt-chart-wrap{padding:0 8px!important;flex:1;display:flex;flex-direction:column}
.mkt-overlay.chart-fs .mkt-tv-chart{flex:1!important;height:auto!important}
/* Chart watermark */
.mkt-chart-wm{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--d);font-size:24px;font-weight:200;color:rgba(240,230,211,.02);pointer-events:none;letter-spacing:.05em;white-space:nowrap;z-index:1}
/* Chart loading skeleton */
.mkt-chart-skel{position:absolute;inset:0;display:flex;align-items:flex-end;gap:3px;padding:60px 40px 40px;z-index:2}
.mkt-chart-skel div{flex:1;border-radius:2px 2px 0 0;background:rgba(240,230,211,.04);animation:shimmer 1.5s infinite}
.mkt-chart-skel.loaded{opacity:0;pointer-events:none;transition:opacity .3s}
/* Hero sparkline (Polymarket/Kalshi-style) */
.mkt-hb-spark{flex-shrink:0;opacity:.4}
.mkt-hb-spark svg{display:block}

/* Animated hero value */
.mkt-hb-val{transition:opacity .15s}
.mkt-hb-val.counting{opacity:.6}

/* Compare mode legend */
.mkt-compare-legend{display:flex;align-items:center;gap:12px;padding:4px 8px;font-family:var(--m);font-size:8px;color:rgba(240,230,211,.3)}
.mkt-compare-legend .cmp-dot{width:8px;height:2px;border-radius:1px;display:inline-block;margin-right:4px}

/* Position P&L card */
.mkt-pnl{padding:12px;border-radius:6px;border:1px solid rgba(240,230,211,.06);background:rgba(240,230,211,.015);margin-bottom:16px}
.mkt-pnl-val{font-family:var(--d);font-size:20px;font-weight:200;letter-spacing:-.02em;line-height:1}
.mkt-pnl-pos{color:var(--s5)}
.mkt-pnl-neg{color:var(--s3)}
.mkt-pnl-row{display:flex;justify-content:space-between;font-family:var(--m);font-size:8px;color:rgba(240,230,211,.2);padding:3px 0}
.mkt-pnl-row span:last-child{color:rgba(240,230,211,.45)}

/* Sidebar section entrance animations */
.mkt-side .mkt-sec,.mkt-side .mkt-fc,.mkt-side .mkt-receipt,.mkt-side .mkt-pnl{opacity:0;transform:translateY(6px);animation:mktSecIn .4s ease forwards}
.mkt-side .mkt-fc{animation-delay:.05s}
.mkt-side .mkt-pnl{animation-delay:.08s}
.mkt-side .mkt-sec:nth-child(2){animation-delay:.1s}
.mkt-side .mkt-sec:nth-child(3){animation-delay:.15s}
.mkt-side .mkt-sec:nth-child(4){animation-delay:.2s}
.mkt-side .mkt-sec:nth-child(5){animation-delay:.25s}
.mkt-side .mkt-sec:nth-child(6){animation-delay:.3s}
.mkt-side .mkt-sec:nth-child(7){animation-delay:.35s}
.mkt-side .mkt-sec:nth-child(8){animation-delay:.4s}
@keyframes mktSecIn{to{opacity:1;transform:translateY(0)}}

/* Order book depth bars — animated entrance */
.mkt-book-depth-row::before{transition:width .6s cubic-bezier(.16,1,.3,1)}

/* Sentiment gauge */
.mkt-gauge{text-align:center;padding:4px 0}
.mkt-gauge svg{display:inline-block}
.mkt-gauge-val{font-family:var(--d);font-size:11px;font-weight:200;color:rgba(240,230,211,.5);margin-top:2px}
.mkt-gauge-label{display:flex;justify-content:space-between;font-family:var(--m);font-size:7px;color:rgba(240,230,211,.12);padding:0 12px}

/* Activity heatmap (GitHub-style) */
.mkt-heatmap{display:grid;grid-template-columns:repeat(13,1fr);gap:2px;margin-bottom:6px}
.mkt-hm-cell{aspect-ratio:1;border-radius:2px;background:rgba(240,230,211,.02);transition:background .3s}
.mkt-hm-cell.l1{background:rgba(196,122,58,.08)}
.mkt-hm-cell.l2{background:rgba(196,122,58,.18)}
.mkt-hm-cell.l3{background:rgba(196,122,58,.32)}
.mkt-hm-cell.l4{background:rgba(196,122,58,.5)}

/* Order flow bubbles (Bloomberg-style) */
.flow-wrap{position:relative;height:80px;overflow:hidden;border-radius:6px;background:rgba(240,230,211,.01);border:1px solid rgba(240,230,211,.03)}
.flow-mid{position:absolute;top:50%;left:0;right:0;height:1px;background:rgba(240,230,211,.04)}
.flow-bubble{position:absolute;border-radius:50%;pointer-events:none;will-change:transform,opacity}
.flow-bubble.buy{animation:flowUp 3s ease-out forwards}
.flow-bubble.sell{animation:flowDown 3s ease-out forwards}
@keyframes flowUp{0%{opacity:.5;transform:translateY(0)}100%{opacity:0;transform:translateY(-80px)}}
@keyframes flowDown{0%{opacity:.5;transform:translateY(0)}100%{opacity:0;transform:translateY(80px)}}

/* Keyboard shortcut overlay */
.mkt-sc-overlay{position:fixed;inset:0;z-index:50;display:none;background:rgba(10,8,6,.8);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);justify-content:center;align-items:center}
.mkt-sc-overlay.show{display:flex}
.mkt-sc-box{background:#131110;border:1px solid rgba(240,230,211,.06);border-radius:10px;padding:24px 32px;max-width:320px;width:90%}
.mkt-sc-title{font-family:var(--d);font-size:14px;font-weight:300;color:rgba(240,230,211,.7);margin-bottom:16px;letter-spacing:-.02em}
.mkt-sc-row{display:flex;align-items:center;gap:12px;padding:5px 0;font-family:var(--m);font-size:9px;color:rgba(240,230,211,.3)}
.mkt-sc-key{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:2px 8px;background:rgba(240,230,211,.04);border:1px solid rgba(240,230,211,.08);border-radius:4px;font-family:var(--m);font-size:8px;color:rgba(240,230,211,.5);text-align:center}

/* Playback spin animation */
.mkt-ctl.playing svg{animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Chart marker tooltip */
.mkt-marker-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#1A0E08;border:1px solid rgba(240,230,211,.08);border-radius:4px;padding:4px 8px;font-family:var(--m);font-size:8px;color:rgba(240,230,211,.5);white-space:nowrap;pointer-events:none;z-index:10}

/* Strata divider — used between sections */
.mkt-strata-div{display:flex;height:2px;border-radius:1px;overflow:hidden;margin:4px 20px 12px;opacity:.2}
.mkt-strata-div div{flex:1}

/* Sub-sections below chart */
.mkt-main-sections{padding:0 20px 20px;overflow-y:auto;flex:1;min-height:0}

/* Order book */
.mkt-book{margin-bottom:14px}
.mkt-book-bar{display:flex;height:36px;border-radius:5px;overflow:hidden;margin-bottom:12px}
.mkt-book-yes{background:var(--s5);display:flex;align-items:center;justify-content:center;font-family:var(--d);font-size:13px;font-weight:300;color:white;letter-spacing:-.01em;transition:width .8s ease}
.mkt-book-no{background:rgba(240,230,211,.06);display:flex;align-items:center;justify-content:center;font-family:var(--d);font-size:13px;font-weight:300;color:rgba(240,230,211,.35);flex:1}
.mkt-book-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mkt-book-col-title{font-family:var(--d);font-size:9px;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}
.mkt-book-depth-row{display:flex;justify-content:space-between;font-family:var(--m);font-size:9px;padding:4px 8px;color:rgba(240,230,211,.4);position:relative;border-radius:2px;margin-bottom:2px}
.mkt-book-depth-row::before{content:'';position:absolute;inset:0;border-radius:2px;opacity:.08;transition:width .4s}
.mkt-book-depth-row.bid::before{background:var(--s5);width:var(--depth,0%)}
.mkt-book-depth-row.ask::before{background:var(--s3);width:var(--depth,0%);right:0;left:auto}
.mkt-book-depth-row span{position:relative;z-index:1}
.mkt-book-depth-row .price{font-weight:500}
.mkt-book-depth-row.bid .price{color:var(--s5)}
.mkt-book-depth-row.ask .price{color:var(--s3)}

/* Volume bar chart */
.mkt-vol-bars{display:flex;gap:1px;align-items:flex-end;height:36px;margin-bottom:4px}
.mkt-vol-bar{flex:1;border-radius:1px 1px 0 0;min-width:2px;transition:height .3s}

/* Community histogram */
.mkt-hist{height:56px;display:flex;gap:2px;align-items:flex-end;margin-bottom:4px}
.mkt-hist-bar{flex:1;border-radius:2px 2px 0 0;background:rgba(240,230,211,.07);transition:height .4s}
.mkt-hist-bar.yours{background:var(--s3)}
.mkt-hist-bar.has-real{background:rgba(196,122,58,.25);box-shadow:0 0 4px rgba(196,122,58,.15)}

/* Streaming trade feed */
.trade-feed{max-height:140px;overflow-y:auto;mask-image:linear-gradient(transparent 0%,black 4px,black calc(100% - 4px),transparent 100%);-webkit-mask-image:linear-gradient(transparent 0%,black 4px,black calc(100% - 4px),transparent 100%)}
.trade-row{display:grid;grid-template-columns:1fr auto auto auto auto;align-items:center;gap:6px;padding:5px 0;font-size:9px;color:rgba(240,230,211,.25);border-bottom:1px solid rgba(240,230,211,.015);animation:tradeIn .4s ease}
@keyframes tradeIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.trade-row .t-user{color:rgba(240,230,211,.45);font-family:var(--b);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trade-row .t-side{font-family:var(--d);font-size:9px;font-weight:400;padding:1px 6px;border-radius:2px;text-align:center}
.trade-row .t-buy{background:rgba(61,107,79,.1);color:var(--s5)}
.trade-row .t-sell{background:rgba(196,122,58,.08);color:var(--s3)}
.trade-row .t-val{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.35);text-align:right}
.trade-row .t-time{font-family:var(--m);font-size:7px;color:rgba(240,230,211,.1);text-align:right}
.trade-row.t-real .t-user{color:var(--s3)}
.trade-row.t-real .t-user::before{content:'\25CF ';font-size:5px;color:var(--s3);vertical-align:middle}

/* Sidebar */
.mkt-side{padding:16px 20px;overflow-y:auto;mask-image:linear-gradient(transparent 0%,black 4px,black calc(100% - 4px),transparent 100%);-webkit-mask-image:linear-gradient(transparent 0%,black 4px,black calc(100% - 4px),transparent 100%)}

/* Forecast form — the primary CTA */
.mkt-fc{padding:16px;background:rgba(240,230,211,.02);border:1px solid rgba(240,230,211,.06);border-radius:8px;margin-bottom:16px}
.mkt-fc:hover{border-color:rgba(240,230,211,.1)}
.mkt-fc-label{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.35);margin-bottom:10px;letter-spacing:.3px}
.mkt-fc-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.mkt-fc-row input[type=range]{flex:1;-webkit-appearance:none;height:4px;background:linear-gradient(to right,var(--s5),var(--s3));border-radius:2px;cursor:pointer;outline:none}
.mkt-fc-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--rift);cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.5)}
.mkt-fc-val{font-family:var(--d);font-size:22px;font-weight:200;min-width:56px;text-align:right;color:var(--rift)}
.mkt-fc-stake{background:transparent;border:1px solid rgba(240,230,211,.1);border-radius:6px;color:var(--rift);font-family:var(--d);font-size:18px;font-weight:200;width:80px;text-align:center;padding:4px 8px;outline:none}
.mkt-fc-stake:focus{border-color:rgba(240,230,211,.15)}
.mkt-fc-stake-label{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.25)}
.mkt-fc-stake-max{font-family:var(--m);font-size:8px;color:rgba(240,230,211,.15)}
.mkt-fc-submit{font-family:var(--d);font-size:11px;font-weight:400;letter-spacing:0;padding:10px 22px;border:1px solid var(--s3);color:var(--s3);background:transparent;border-radius:5px;cursor:pointer;transition:all .25s;width:100%;margin-top:4px}
.mkt-fc-submit:hover{background:var(--s3);color:var(--lt);box-shadow:0 4px 16px rgba(196,122,58,.15)}
.mkt-fc-error{font-family:var(--m);font-size:9px;color:var(--fire);margin-top:6px;padding:4px 8px;background:rgba(221,51,85,.04);border-radius:3px;display:none}

/* Shared section + KV styles */
.mkt-sec{margin-bottom:18px}
.mkt-sec-title{font-family:var(--m);font-size:8px;font-weight:400;color:rgba(240,230,211,.25);margin-bottom:8px;text-transform:uppercase;letter-spacing:.8px;cursor:pointer;user-select:none;display:flex;align-items:center}
.mkt-sec-title::after{content:'\25BE';font-size:7px;margin-left:auto;opacity:.15;transition:transform .25s;flex-shrink:0}
.mkt-sec.collapsed>.mkt-sec-title{margin-bottom:0}
.mkt-sec.collapsed>.mkt-sec-title::after{transform:rotate(-90deg)}
.mkt-sec.collapsed>:not(.mkt-sec-title){display:none}
.mkt-kv{margin-bottom:10px}
.mkt-kv-row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid rgba(240,230,211,.02);font-size:10px;align-items:baseline}
.mkt-kv-label{color:rgba(240,230,211,.3);font-family:var(--m);font-size:9px}
.mkt-kv-val{color:rgba(240,230,211,.55);font-family:var(--d);font-size:10px;font-weight:300}

/* Activity feed */
.mkt-act{margin-bottom:4px}
.mkt-act-row{display:flex;align-items:center;gap:5px;padding:4px 0;font-size:9px;color:rgba(240,230,211,.35);border-bottom:1px solid rgba(240,230,211,.015)}
.mkt-act-row .au{color:rgba(240,230,211,.5);font-weight:500;font-family:var(--b);font-size:9px}
.mkt-act-row .av{font-family:var(--d);font-size:10px;font-weight:300;color:var(--s3)}
.mkt-act-row .at{font-family:var(--m);font-size:7px;color:rgba(240,230,211,.12);margin-left:auto}
.mkt-act-row.t-real .au{color:rgba(240,230,211,.7)}

/* Backtest */
.mkt-bt{display:flex;gap:2px;align-items:flex-end;height:32px;margin-bottom:6px}
.mkt-bt-b{flex:1;border-radius:2px 2px 0 0;min-width:3px}
.mkt-bt-b.ok{background:var(--s5);opacity:.6}.mkt-bt-b.no{background:var(--s3);opacity:.25}

/* Resolution text */
.mkt-res{font-size:11px;color:rgba(240,230,211,.45);line-height:1.7;font-family:var(--b)}
.mkt-res strong{color:var(--rift)}

/* Settlement receipt */
.mkt-receipt{padding:14px;border-radius:6px;border:1px solid rgba(68,170,153,.12);background:rgba(68,170,153,.03);margin-bottom:16px}

/* Footer — strata accent */
.mkt-foot{padding:6px 20px;background:#131110;border:1px solid rgba(240,230,211,.03);border-radius:0 0 10px 10px;display:flex;gap:4px;flex-wrap:wrap;align-items:center;flex-shrink:0}
.mkt-pill{font-family:var(--m);font-size:7px;padding:2px 7px;border-radius:3px;border:1px solid rgba(240,230,211,.04);color:rgba(240,230,211,.2)}

@media(max-width:900px){
  /* Globe hidden on mobile — saves GPU, never visible behind card-stage */
  #gl{display:none}
  .gl-edge{display:none}
  .ambient-particles{display:none}
  .cursor-glow{display:none}
  .sys-ambient{display:none}
  /* Card stage — full width standalone */
  .card-stage{width:100vw;top:0;left:0;right:0;border-left:none;background:rgba(10,8,6,.98)}
  .card-stage-head{padding:env(safe-area-inset-top,20px) 16px 0}
  .panel-nav{gap:4px;padding:4px 0 6px}
  .panel-nav .bdg{font-size:7px;padding:3px 8px}
  .card-grid{grid-template-columns:1fr;padding:8px 16px 100px}
  /* Control bar full width */
  .control-bar{width:100vw}
  .dock-row{overflow-x:auto;gap:1px;padding:4px 6px}
  .dock-tab{font-size:10px;padding:5px 10px}
  .dock-sep{display:none}
  .gc-actions{gap:6px;padding:0 10px}
  .gc-btn{padding:12px 0;font-size:14px}
  .data-ticker{width:100vw;bottom:50px}
  .top{width:100vw}
  .sort-bar{gap:4px}
  /* Top bar compact */
  .top{padding:10px 16px;gap:8px}
  .tag{display:none}
  .logo-text{font-size:16px}
  .bdg{font-size:7px;padding:3px 8px}
  /* Market overlay — single column, full screen */
  .mkt-container{padding:0!important}
  .mkt-hero-bar{padding:12px 16px 8px!important;gap:12px}
  .mkt-hb-q{min-width:0;font-size:15px}
  .mkt-hb-val{font-size:28px}
  .mkt-hb-stats{gap:12px}
  .mkt-body{grid-template-columns:1fr!important;overflow-y:auto}
  .mkt-main{border-right:none!important}
  .mkt-side{padding:12px 16px!important}
  .mkt-chart-wrap{padding:4px 12px 0!important}
  .mkt-tv-chart{height:260px!important}
  .mkt-main-sections{padding:0 12px 16px!important}
  .mkt-head-row{flex-wrap:wrap;gap:6px;padding:8px 12px}
  /* View overlays full width */
  .view-box{width:calc(100vw - 16px)}
  /* Welcome — stack vertically, show EMM card */
  .welcome{display:flex;flex-direction:column;align-items:center;overflow-y:auto}
  .ws-left{position:relative;left:auto;top:auto;transform:none;width:100%;padding:60px 24px 20px;display:flex;justify-content:center}
  .ws-card{width:100%;max-width:400px}
  .ws-right{position:relative;right:auto;top:auto;bottom:auto;width:100%;padding:0 24px 40px;display:flex;justify-content:center}
  .ws-emm{max-width:400px}
  .welcome-btn{padding:12px 24px;font-size:11px}
  /* Walkthrough tooltip */
  .wt-tooltip{max-width:320px!important;width:calc(100vw - 32px)!important;padding:20px!important}
  .wt-title{font-size:17px}
  /* Forecast confirm & email capture */
  .fcc-box,.email-box{width:calc(100vw - 32px);max-width:400px;padding:24px}
  .fcc-val{font-size:32px}
  /* Timeline — compact */
  .tl-row{gap:6px;padding:0 8px 6px}
  .tl-row.open{padding:2px 8px 6px}
  .timeline-date{font-size:7px;min-width:45px}
  .timeline-thumb{width:14px;height:14px;top:-6px}
  .timeline-play{width:18px;height:18px;font-size:8px}
  /* Satellite badge hidden on mobile (no globe) */
  .sat-badge{display:none}
  .sat-panel{display:none}
  .geo-card{width:calc(100vw - 32px);max-width:300px}
  .bdg-conv{display:none}
  /* Auth modal — prevent keyboard push off-screen */
  .modal{max-height:calc(100dvh - 40px);overflow-y:auto;width:calc(100vw - 32px);max-width:360px;padding:24px 20px}
  /* Portfolio bar — prevent 4-column overflow at 375px */
  .portfolio-bar{flex-wrap:wrap;gap:4px;padding:6px 12px}
  .pbar-stat{min-width:0;flex:1 1 45%}
  /* Touch-friendly targets */
  .panel-nav .bdg{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .sort-pill{min-height:44px;display:inline-flex;align-items:center}
  .dock-tab{min-height:44px}
  /* gc-detail-link visible on touch (no hover state available) */
  .gc-detail-link{color:rgba(240,230,211,.35)}
  /* Range slider thumb — bigger for touch */
  .mkt-fc-row input[type=range]::-webkit-slider-thumb{width:28px;height:28px}
}

/* (scan line overlay removed) */

/* ═══ Data Flow Particles ═══ */
.data-particle{position:fixed;width:3px;height:3px;border-radius:50%;pointer-events:none;z-index:7;opacity:0;will-change:transform,opacity}
@keyframes dataFlow{
  0%{opacity:0;transform:translate(0,0) scale(.5)}
  15%{opacity:.6}
  85%{opacity:.3}
  100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.2)}
}

/* ═══ Resolved Markets (cream bg panel) ═══ */
.resolved-section{padding:14px 22px 6px}
.resolved-title{font-family:var(--d);font-size:11px;font-weight:300;color:var(--s5);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.resolved-title::after{content:'';flex:1;height:1px;background:rgba(61,107,79,.08)}
.resolved-strip{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.resolved-card{padding:10px 12px;border-radius:6px;border:1px solid rgba(61,107,79,.08);background:rgba(61,107,79,.02);cursor:pointer;transition:all .25s;position:relative}
.resolved-card:hover{border-color:rgba(61,107,79,.16);background:rgba(61,107,79,.04);transform:translateY(-1px);box-shadow:0 3px 12px rgba(0,0,0,.04)}
.resolved-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--s5);border-radius:2px 0 0 2px;opacity:.5}
.rc-q{font-family:var(--d);font-size:10px;font-weight:400;color:var(--s1);line-height:1.3;margin-bottom:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rc-outcome{font-family:var(--d);font-size:13px;font-weight:300;color:var(--s5);margin-bottom:4px;display:flex;align-items:center;gap:4px}
.rc-outcome::before{content:'\2713';font-size:10px}
.rc-meta{font-family:var(--m);font-size:7px;color:rgba(26,14,8,.35);letter-spacing:.3px;line-height:1.5}
.rc-hash{font-family:var(--m);font-size:6.5px;color:rgba(26,14,8,.25);letter-spacing:.5px;margin-top:3px}

/* ═══ Featured Stories (cream bg panel) ═══ */
.stories-section{padding:8px 22px 6px}
.stories-title{font-family:var(--d);font-size:11px;font-weight:300;color:rgba(26,14,8,.3);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.stories-title::after{content:'';flex:1;height:1px;background:rgba(26,14,8,.04)}
.story-card{padding:12px 14px 12px 16px;border:1px solid rgba(26,14,8,.04);border-radius:8px;margin-bottom:6px;cursor:pointer;transition:all .25s;position:relative;overflow:hidden;background:rgba(26,14,8,.008)}
.story-card:hover{background:rgba(26,14,8,.02);border-color:rgba(26,14,8,.08);transform:translateY(-1px);box-shadow:0 3px 12px rgba(0,0,0,.04)}
.story-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px 0 0 3px}
.story-card[data-sys="life"]::before{background:var(--s5)}
.story-card[data-sys="water"]::before{background:#3D6B4F}
.sc-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}
.sc-sys{font-family:var(--d);font-size:8px;font-weight:400;letter-spacing:.5px;text-transform:uppercase;padding:2px 6px;border-radius:2px}
.sc-sys-life{color:var(--s5);background:rgba(61,107,79,.06)}
.sc-sys-water{color:#3D6B4F;background:rgba(61,107,79,.04)}
.sc-pills{display:flex;gap:3px;margin-left:auto}
.sc-pills span{font-family:var(--m);font-size:7px;color:rgba(26,14,8,.35);background:rgba(26,14,8,.03);padding:2px 5px;border-radius:2px}
.sc-q{font-family:var(--d);font-size:13px;font-weight:400;color:var(--s1);line-height:1.35;margin-bottom:4px;letter-spacing:-.01em}
.sc-narrative{font-family:var(--b);font-size:10px;font-weight:300;color:rgba(26,14,8,.5);line-height:1.5;margin-bottom:8px}
.sc-row{display:flex;align-items:baseline;gap:6px}
.sc-num{font-family:var(--d);font-size:22px;font-weight:200;color:var(--s1);letter-spacing:-.03em}
.sc-unit{font-family:var(--d);font-size:10px;font-weight:300;color:rgba(26,14,8,.45)}
.sc-bar{flex:1;height:3px;background:rgba(26,14,8,.04);border-radius:2px;overflow:hidden;align-self:center}
.sc-bar-fill{height:100%;border-radius:2px;background:var(--s5)}


/* ─── CONVERGENCE MODE ─── */
.bdg-conv{color:var(--s4);border-color:rgba(232,199,123,.25);background:rgba(232,199,123,.06);cursor:pointer}
.bdg-conv.active{background:rgba(232,199,123,.2);border-color:rgba(232,199,123,.5);color:var(--rift)}
.conv-label{position:fixed;z-index:20;pointer-events:none;font-family:var(--d);font-size:10px;font-weight:300;color:var(--rift);background:rgba(12,10,8,.9);backdrop-filter:blur(12px);border:1px solid rgba(240,230,211,.08);padding:8px 14px;border-radius:6px;opacity:0;transition:opacity .3s}
.conv-label.show{opacity:1}

/* ─── TEMPORAL DIMENSION — timeline scrubber (inside control bar) ─── */
.timeline-play{width:22px;height:22px;border-radius:50%;background:rgba(240,230,211,.08);border:1px solid rgba(240,230,211,.1);color:rgba(240,230,211,.5);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-size:9px;flex-shrink:0}
.timeline-play:hover{background:rgba(240,230,211,.15);color:var(--rift)}
.timeline-play.playing{background:rgba(196,122,58,.15);border-color:rgba(196,122,58,.3);color:var(--s3)}
.timeline-date{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.45);min-width:60px;text-align:center;letter-spacing:.5px;flex-shrink:0}
.timeline-track{flex:1;height:3px;background:rgba(240,230,211,.08);border-radius:2px;position:relative;cursor:pointer;touch-action:none}
.timeline-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--s5),var(--s3));transition:width .1s}
.timeline-thumb{position:absolute;top:-7px;width:16px;height:16px;border-radius:50%;background:var(--rift);border:2px solid rgba(12,10,8,.8);box-shadow:0 2px 8px rgba(0,0,0,.4);cursor:grab;transform:translateX(-50%);transition:transform .1s}
.timeline-thumb:active{cursor:grabbing;transform:translateX(-50%) scale(1.2)}
.timeline-live{font-family:var(--d);font-size:8px;font-weight:400;color:var(--s5);padding:2px 7px;border:1px solid rgba(61,107,79,.2);border-radius:3px;cursor:pointer;transition:all .2s;flex-shrink:0}
.timeline-live.inactive{color:rgba(240,230,211,.2);border-color:rgba(240,230,211,.06)}
/* ─── DATA TICKER — scrolling live readings ─── */
.data-ticker{position:fixed;bottom:50px;right:0;width:56vw;z-index:7;overflow:hidden;height:22px;pointer-events:none;opacity:0;transition:opacity .6s;mask-image:linear-gradient(90deg,transparent 2%,black 8%,black 92%,transparent 98%);-webkit-mask-image:linear-gradient(90deg,transparent 2%,black 8%,black 92%,transparent 98%);background:rgba(10,8,6,.9);border-top:1px solid rgba(240,230,211,.03);padding:0 16px}
.data-ticker.visible{opacity:1}
.data-ticker-inner{display:flex;gap:24px;animation:tickerScroll 30s linear infinite;white-space:nowrap}
.data-ticker-item{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.35);letter-spacing:.3px;display:flex;align-items:center;gap:5px;flex-shrink:0}
.data-ticker-item .dt-val{color:rgba(240,230,211,.55);font-weight:400}
.data-ticker-item .dt-delta{font-size:8px}
.data-ticker-item .dt-up{color:var(--s3)}
.data-ticker-item .dt-dn{color:#5a7fbf}
.data-ticker-item.dt-emm{color:rgba(61,107,79,.5)}
.data-ticker-item.dt-emm .dt-val{color:rgba(61,107,79,.7)}
@keyframes tickerScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ─── SATELLITE IMAGERY PANEL ─── */
.sat-badge{position:fixed;top:70px;right:16px;z-index:8;font-family:var(--d);font-size:10px;font-weight:300;padding:6px 14px;border-radius:6px;cursor:pointer;background:rgba(12,10,8,.7);backdrop-filter:blur(12px);border:1px solid rgba(240,230,211,.06);color:rgba(240,230,211,.35);transition:all .2s;opacity:0}
.sat-badge.visible{opacity:1}
.sat-badge:hover{color:var(--rift);border-color:rgba(240,230,211,.12)}
.sat-badge.active{color:var(--s5);border-color:rgba(61,107,79,.3);background:rgba(61,107,79,.1)}
.sat-panel{position:fixed;top:100px;right:16px;z-index:8;background:rgba(12,10,8,.78);backdrop-filter:blur(24px) saturate(1.4);border:1px solid rgba(240,230,211,.06);border-radius:10px;padding:14px 16px;width:180px;opacity:0;transform:translateX(20px);transition:opacity .4s,transform .4s;pointer-events:none}
.sat-panel.visible{opacity:1;transform:translateX(0);pointer-events:auto}
.sat-panel-title{font-family:var(--d);font-size:10px;font-weight:300;color:rgba(240,230,211,.4);letter-spacing:.5px;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.sat-panel-title::after{content:'';flex:1;height:1px;background:rgba(240,230,211,.04)}
.sat-toggle{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid rgba(240,230,211,.03);cursor:pointer;transition:all .2s}
.sat-toggle:last-child{border-bottom:none}
.sat-switch{width:28px;height:16px;border-radius:8px;background:rgba(240,230,211,.1);border:1px solid rgba(240,230,211,.08);position:relative;transition:all .3s;flex-shrink:0}
.sat-switch::after{content:'';position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:rgba(240,230,211,.3);transition:all .3s}
.sat-switch.on{background:rgba(61,107,79,.2);border-color:rgba(61,107,79,.4)}
.sat-switch.on::after{left:14px;background:var(--s5)}
.sat-label{font-family:var(--d);font-size:11px;font-weight:300;color:rgba(240,230,211,.5);transition:color .2s}
.sat-toggle.active .sat-label{color:var(--rift)}
.sat-loading{font-family:var(--m);font-size:8px;color:rgba(240,230,211,.2);margin-left:auto}

/* ═══════════════════════════════════════════════════════════════════════
   VISUAL FEATURES — Cards, Trading Terminal, Portfolio Bar,
   Celebrations, Activity Stream, Price Animations, Welcome Proof
   ═══════════════════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────────────────────────────────
   1. CARDS THAT BREATHE — Glass Morphism Overhaul
   ───────────────────────────────────────────────────────────────────── */

/* System stripe */
.gc::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:rgba(240,230,211,.06);border-radius:14px 14px 0 0;z-index:1;transition:background .3s,box-shadow .4s}
.gc[data-sys="air"]{box-shadow:inset 0 1px 0 rgba(90,127,191,.08)}.gc[data-sys="air"]::before{background:rgba(90,127,191,.5)}
.gc[data-sys="water"]{box-shadow:inset 0 1px 0 rgba(68,170,153,.08)}.gc[data-sys="water"]::before{background:rgba(68,170,153,.5)}
.gc[data-sys="life"]{box-shadow:inset 0 1px 0 rgba(91,187,153,.08)}.gc[data-sys="life"]::before{background:rgba(91,187,153,.5)}
.gc[data-sys="land"]{box-shadow:inset 0 1px 0 rgba(221,153,136,.08)}.gc[data-sys="land"]::before{background:rgba(221,153,136,.5)}
.gc[data-sys="people"]{box-shadow:inset 0 1px 0 rgba(221,187,136,.08)}.gc[data-sys="people"]::before{background:rgba(221,187,136,.5)}
.gc[data-sys="space"]{box-shadow:inset 0 1px 0 rgba(170,119,187,.08)}.gc[data-sys="space"]::before{background:rgba(170,119,187,.5)}
.gc[data-sys="air"]:hover{border-color:rgba(90,127,191,.2);box-shadow:0 24px 64px rgba(0,0,0,.5),0 0 24px rgba(90,127,191,.06),inset 0 1px 0 rgba(90,127,191,.12)}.gc[data-sys="air"]:hover::before{box-shadow:0 2px 12px rgba(90,127,191,.3)}
.gc[data-sys="water"]:hover{border-color:rgba(68,170,153,.2);box-shadow:0 24px 64px rgba(0,0,0,.5),0 0 24px rgba(68,170,153,.06),inset 0 1px 0 rgba(68,170,153,.12)}.gc[data-sys="water"]:hover::before{box-shadow:0 2px 12px rgba(68,170,153,.3)}
.gc[data-sys="life"]:hover{border-color:rgba(91,187,153,.2);box-shadow:0 24px 64px rgba(0,0,0,.5),0 0 24px rgba(91,187,153,.06),inset 0 1px 0 rgba(91,187,153,.12)}.gc[data-sys="life"]:hover::before{box-shadow:0 2px 12px rgba(91,187,153,.3)}
.gc[data-sys="land"]:hover{border-color:rgba(221,153,136,.2);box-shadow:0 24px 64px rgba(0,0,0,.5),0 0 24px rgba(221,153,136,.06),inset 0 1px 0 rgba(221,153,136,.12)}.gc[data-sys="land"]:hover::before{box-shadow:0 2px 12px rgba(221,153,136,.3)}
.gc[data-sys="people"]:hover{border-color:rgba(221,187,136,.2);box-shadow:0 24px 64px rgba(0,0,0,.5),0 0 24px rgba(221,187,136,.06),inset 0 1px 0 rgba(221,187,136,.12)}.gc[data-sys="people"]:hover::before{box-shadow:0 2px 12px rgba(221,187,136,.3)}
.gc[data-sys="space"]:hover{border-color:rgba(170,119,187,.2);box-shadow:0 24px 64px rgba(0,0,0,.5),0 0 24px rgba(170,119,187,.06),inset 0 1px 0 rgba(170,119,187,.12)}.gc[data-sys="space"]:hover::before{box-shadow:0 2px 12px rgba(170,119,187,.3)}
/* (trade CTA removed — action via Yes/No buttons) */
/* Price flash */
.gc-price-flash{animation:gcPriceFlash .6s ease}
@keyframes gcPriceFlash{0%{background:rgba(68,170,153,.12)}100%{background:transparent}}
.gc-price-up .gc-num{color:#4a9;transition:color .4s ease}
.gc-price-dn .gc-num{color:#c47a5a;transition:color .4s ease}

/* ─────────────────────────────────────────────────────────────────────
   2. MARKET DETAIL — Trading Terminal Polish
   ───────────────────────────────────────────────────────────────────── */

/* Order book depth bars — horizontal bars from center */
.mkt-book-depth{display:flex;flex-direction:column;gap:1px;margin-bottom:14px}
.mkt-book-depth-row{display:flex;height:22px;position:relative;align-items:center}
.mkt-book-depth-row::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(240,230,211,.06)}
/* Bid bar — green, fills leftward from center */
.mkt-book-depth-bid{position:absolute;right:50%;top:1px;bottom:1px;background:rgba(68,170,153,.12);border-radius:2px 0 0 2px;transition:width .6s cubic-bezier(.16,1,.3,1)}
/* Ask bar — red, fills rightward from center */
.mkt-book-depth-ask{position:absolute;left:50%;top:1px;bottom:1px;background:rgba(196,122,90,.1);border-radius:0 2px 2px 0;transition:width .6s cubic-bezier(.16,1,.3,1)}
.mkt-book-depth-price{position:relative;z-index:1;font-family:var(--m);font-size:9px;color:rgba(240,230,211,.45);width:50%;text-align:right;padding-right:8px}
.mkt-book-depth-size{position:relative;z-index:1;font-family:var(--m);font-size:9px;color:rgba(240,230,211,.3);width:50%;text-align:left;padding-left:8px}

/* Countdown urgent — red pulsing glow under 7 days */
.mkt-countdown-urgent{color:#d45!important;animation:countdownPulse 1.5s ease-in-out infinite}
@keyframes countdownPulse{0%,100%{text-shadow:0 0 8px rgba(221,68,85,.2);opacity:1}50%{text-shadow:0 0 16px rgba(221,68,85,.4);opacity:.85}}

/* Settlement proof section — dark inset card */
.mkt-proof{background:rgba(12,10,8,.6);border:1px solid rgba(240,230,211,.04);border-radius:8px;padding:14px 16px;margin-bottom:14px;position:relative}
.mkt-proof::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(61,107,79,.15),transparent)}
.mkt-proof-title{font-family:var(--m);font-size:8px;text-transform:uppercase;letter-spacing:.8px;color:rgba(240,230,211,.2);margin-bottom:10px;display:flex;align-items:center;gap:6px}
.mkt-proof-badge{display:inline-flex;align-items:center;gap:4px;font-family:var(--d);font-size:9px;font-weight:400;color:var(--s5);padding:3px 8px;border-radius:3px;background:rgba(61,107,79,.08);border:1px solid rgba(61,107,79,.12);margin-left:auto}
.mkt-proof-badge::before{content:'\2713';font-size:8px}
.mkt-proof-src{display:flex;align-items:center;gap:6px;font-family:var(--m);font-size:9px;color:rgba(240,230,211,.3);margin-bottom:8px}
.mkt-proof-src-icon{width:16px;height:16px;border-radius:3px;background:rgba(240,230,211,.06);display:flex;align-items:center;justify-content:center;font-size:8px;color:rgba(240,230,211,.3);flex-shrink:0}

/* SHA-256 hash display with gradient background */
.mkt-proof-hash{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.25);word-break:break-all;letter-spacing:.5px;padding:8px 10px;background:linear-gradient(135deg,rgba(240,230,211,.02) 0%,rgba(61,107,79,.03) 100%);border-radius:4px;border:1px solid rgba(240,230,211,.03);line-height:1.6}

/* Live data reading display — big number + pulsing green dot */
.mkt-reading{display:flex;align-items:center;gap:10px;padding:12px 0;margin-bottom:14px}
.mkt-reading-dot{width:8px;height:8px;border-radius:50%;background:#4a9;flex-shrink:0;animation:mktReadingPulse 2s ease-in-out infinite;box-shadow:0 0 8px rgba(68,170,153,.4)}
@keyframes mktReadingPulse{0%,100%{opacity:1;box-shadow:0 0 8px rgba(68,170,153,.4)}50%{opacity:.5;box-shadow:0 0 4px rgba(68,170,153,.15)}}
.mkt-reading-val{font-family:var(--d);font-size:36px;font-weight:200;color:var(--rift);letter-spacing:-.03em;line-height:1}
.mkt-reading-unit{font-family:var(--d);font-size:11px;font-weight:300;color:rgba(240,230,211,.3);margin-top:auto}
.mkt-reading-ts{font-family:var(--m);font-size:8px;color:rgba(240,230,211,.15);margin-left:auto}

/* ─────────────────────────────────────────────────────────────────────
   3. PERSISTENT PORTFOLIO BAR
   ───────────────────────────────────────────────────────────────────── */

.portfolio-bar{position:fixed;bottom:0;left:0;width:100%;z-index:20;height:48px;background:rgba(12,10,8,.95);backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);border-top:1px solid rgba(240,230,211,.08);display:flex;align-items:center;gap:0;padding:0 20px;transition:height .35s cubic-bezier(.16,1,.3,1),background .3s,opacity .4s,transform .4s;opacity:0;transform:translateY(100%);pointer-events:none}
.portfolio-bar.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.portfolio-bar.pbar-auth{cursor:pointer}
.portfolio-bar.pbar-auth:hover{background:rgba(12,10,8,1);border-top-color:rgba(240,230,211,.12)}
.portfolio-bar::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 5%,rgba(240,230,211,.04) 50%,transparent 95%)}

.pbar-stat{display:flex;align-items:center;gap:6px;padding:0 18px;height:100%;position:relative;font-family:var(--d);font-size:10px;font-weight:300;color:rgba(240,230,211,.4);letter-spacing:.02em}
.pbar-stat:not(:last-child)::after{content:'';position:absolute;right:0;top:12px;bottom:12px;width:1px;background:rgba(240,230,211,.06)}
.pbar-stat-label{font-family:var(--m);font-size:8px;text-transform:uppercase;letter-spacing:.6px;color:rgba(240,230,211,.2)}

/* EP balance — prominent */
.pbar-ep{font-family:var(--d);font-size:18px;font-weight:200;color:var(--rift);letter-spacing:-.02em}

/* P&L color + flash */
.pbar-pnl-up{color:#4a9;font-family:var(--d);font-size:14px;font-weight:300;animation:pbarFlashUp .6s ease}
.pbar-pnl-dn{color:#c47a5a;font-family:var(--d);font-size:14px;font-weight:300;animation:pbarFlashDn .6s ease}
@keyframes pbarFlashUp{0%{background:rgba(68,170,153,.15);border-radius:3px}100%{background:transparent}}
@keyframes pbarFlashDn{0%{background:rgba(196,122,90,.12);border-radius:3px}100%{background:transparent}}

/* Join CTA (no user yet) */
.pbar-join{font-family:var(--d);font-size:11px;font-weight:300;color:var(--rift);letter-spacing:.02em;cursor:pointer;padding:0 12px;width:100%;text-align:center;transition:color .2s}
.pbar-join:hover{color:var(--s3)}

/* Expanded view */
.pbar-expand{height:auto;min-height:48px;max-height:220px;padding-bottom:12px;flex-wrap:wrap;align-content:center}
.pbar-expand .pbar-stat{padding:6px 18px}

/* ─────────────────────────────────────────────────────────────────────
   4. SETTLEMENT CELEBRATIONS
   ───────────────────────────────────────────────────────────────────── */

/* Enhanced settled badge */
.gc.gc-settled-card{background:linear-gradient(135deg,rgba(61,107,79,.04) 0%,rgba(240,230,211,.02) 100%);box-shadow:0 0 24px rgba(61,107,79,.06),inset 0 1px 0 rgba(61,107,79,.1)}
.gc.gc-settled-card .gc-settled{font-size:9px;padding:4px 12px;border-radius:4px;letter-spacing:.4px}
.gc.gc-settled-card .gc-settled-yes{background:rgba(61,107,79,.15);color:#4a9;box-shadow:0 0 12px rgba(68,170,153,.1)}
.gc.gc-settled-card .gc-settled-no{background:rgba(196,122,58,.12);color:#c47a5a;box-shadow:0 0 12px rgba(196,122,90,.08)}

/* Golden particle burst effect via box-shadow */
.gc-celebrate{animation:celebrateBurst 1.2s ease-out}
@keyframes celebrateBurst{
  0%{box-shadow:0 0 0 0 rgba(232,199,123,.3),0 0 0 0 rgba(232,199,123,.15),0 0 0 0 rgba(196,122,58,.1)}
  25%{box-shadow:0 0 20px 4px rgba(232,199,123,.2),0 0 40px 8px rgba(232,199,123,.08),0 0 60px 12px rgba(196,122,58,.04)}
  60%{box-shadow:0 0 30px 8px rgba(232,199,123,.08),0 0 60px 16px rgba(232,199,123,.03),0 0 80px 20px rgba(196,122,58,.01)}
  100%{box-shadow:0 0 0 0 transparent,0 0 0 0 transparent,0 0 0 0 transparent}
}

/* (result-flash + counterfactual removed — settled state via gc-head badge) */

/* (activity stream removed) */

/* ─────────────────────────────────────────────────────────────────────
   6. PRICE CHANGE ANIMATIONS
   ───────────────────────────────────────────────────────────────────── */

@keyframes priceFlashUp{
  0%{background-color:rgba(68,170,153,.15)}
  100%{background-color:transparent}
}
@keyframes priceFlashDn{
  0%{background-color:rgba(196,122,90,.12)}
  100%{background-color:transparent}
}
@keyframes countUp{
  0%{transform:scale(1)}
  30%{transform:scale(1.06)}
  60%{transform:scale(.98)}
  100%{transform:scale(1)}
}

.gc-prob.flash-up,.gc-val.flash-up{animation:priceFlashUp .5s ease,countUp .4s cubic-bezier(.16,1,.3,1);color:#4a9;border-radius:3px}
.gc-prob.flash-dn,.gc-val.flash-dn{animation:priceFlashDn .5s ease,countUp .4s cubic-bezier(.16,1,.3,1);color:#c47a5a;border-radius:3px}

/* (proof cards removed — welcome screen simplified) */

/* ═══════════════════════════════════════════════════════════════════════
   PHASE 2 — Command Palette, Card Tilt, Sparkline Draw, Grid Cascade,
   Status Heartbeat, Ambient Particles, Scroll Reveals
   ═══════════════════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────────────────────────────────
   1. COMMAND PALETTE (Cmd+K)
   ───────────────────────────────────────────────────────────────────── */

.cmd-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-start;justify-content:center;padding-top:min(20vh,160px);opacity:0;pointer-events:none;transition:opacity .2s ease}
.cmd-overlay.open{opacity:1;pointer-events:auto}
.cmd-backdrop{position:absolute;inset:0;background:rgba(12,10,8,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.cmd-palette{position:relative;width:min(560px,90vw);background:rgba(18,14,10,.95);backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);border:1px solid rgba(240,230,211,.1);border-radius:14px;box-shadow:0 24px 80px rgba(0,0,0,.6),0 0 0 1px rgba(240,230,211,.04);overflow:hidden;transform:scale(.96) translateY(-12px);transition:transform .25s cubic-bezier(.16,1,.3,1)}
.cmd-overlay.open .cmd-palette{transform:scale(1) translateY(0)}

.cmd-input-row{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid rgba(240,230,211,.06)}
.cmd-icon{color:rgba(240,230,211,.3);flex-shrink:0}
.cmd-input{flex:1;background:transparent;border:none;outline:none;font-family:var(--b);font-size:15px;font-weight:400;color:var(--rift);caret-color:var(--s3);letter-spacing:-.01em}
.cmd-input::placeholder{color:rgba(240,230,211,.2)}
.cmd-kbd{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.2);padding:2px 6px;border:1px solid rgba(240,230,211,.08);border-radius:4px;background:rgba(240,230,211,.02);flex-shrink:0}

.cmd-results{max-height:360px;overflow-y:auto;padding:6px 0}
.cmd-results::-webkit-scrollbar{width:3px}
.cmd-results::-webkit-scrollbar-thumb{background:rgba(240,230,211,.06);border-radius:2px}
.cmd-result{display:flex;align-items:center;gap:12px;padding:10px 18px;cursor:pointer;transition:background .12s}
.cmd-result:hover,.cmd-result.active{background:rgba(240,230,211,.04)}
.cmd-result-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;opacity:.7}
.cmd-result-body{flex:1;min-width:0}
.cmd-result-name{font-family:var(--d);font-size:13px;font-weight:300;color:var(--rift);letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmd-result-meta{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.25);margin-top:1px;display:flex;gap:8px}
.cmd-result-odds{font-family:var(--m);font-size:12px;color:rgba(240,230,211,.4);flex-shrink:0}
.cmd-no-results{padding:24px 18px;text-align:center;font-family:var(--b);font-size:12px;color:rgba(240,230,211,.2)}

.cmd-footer{display:flex;gap:18px;padding:10px 18px;border-top:1px solid rgba(240,230,211,.04);font-family:var(--m);font-size:9px;color:rgba(240,230,211,.15)}
.cmd-footer kbd{font-size:8px;padding:1px 4px;border:1px solid rgba(240,230,211,.08);border-radius:3px;background:rgba(240,230,211,.02);margin-right:3px}

/* ─────────────────────────────────────────────────────────────────────
   2. 3D CARD TILT — Apple visionOS parallax
   ───────────────────────────────────────────────────────────────────── */

.card-grid{perspective:1200px}
/* Light sweep layer (::after defined in main .gc block) */

/* ─────────────────────────────────────────────────────────────────────
   3. SPARKLINE DRAW ANIMATION
   ───────────────────────────────────────────────────────────────────── */

.gc-chart polyline{stroke-dasharray:var(--path-len,800);stroke-dashoffset:var(--path-len,800);transition:stroke-dashoffset 1.4s cubic-bezier(.22,1,.36,1)}
.gc-chart polygon{opacity:0;transition:opacity .8s ease .5s}
.gc-chart circle{opacity:0;transition:opacity .4s ease 1.2s}
.gc-chart.drawn polyline{stroke-dashoffset:0}
.gc-chart.drawn polygon{opacity:1}
.gc-chart.drawn circle{opacity:1}

/* ─────────────────────────────────────────────────────────────────────
   4. GRID CASCADE STAGGER
   ───────────────────────────────────────────────────────────────────── */

/* Hover transform defined in main .gc block above */

/* ─────────────────────────────────────────────────────────────────────
   5. STATUS HEARTBEAT BAR
   ───────────────────────────────────────────────────────────────────── */

.heartbeat-bar{position:fixed;top:0;left:0;width:100%;z-index:45;height:22px;background:rgba(8,6,4,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(240,230,211,.03);display:flex;align-items:center;justify-content:center;gap:8px;opacity:0;transition:opacity .6s ease;pointer-events:none}
.heartbeat-bar.live{opacity:1;pointer-events:auto}
.hb-dot{width:5px;height:5px;border-radius:50%;background:#4a9;flex-shrink:0;animation:hbPulse 2.5s ease-in-out infinite}
@keyframes hbPulse{0%,100%{box-shadow:0 0 4px rgba(68,170,153,.5);opacity:1}50%{box-shadow:0 0 8px rgba(68,170,153,.8);opacity:.6}}
.hb-status{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.2);letter-spacing:.3px}
.hb-src{color:rgba(240,230,211,.12)}
.hb-src-dot{display:inline-block;width:4px;height:4px;border-radius:50%;margin:0 2px 0 6px;vertical-align:middle}
/* Heartbeat sits above everything — no layout shift needed (22px thin) */

/* ─────────────────────────────────────────────────────────────────────
   7. AMBIENT BACKGROUND PARTICLES
   ───────────────────────────────────────────────────────────────────── */

.ambient-particles{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.6}

/* ─────────────────────────────────────────────────────────────────────
   8. CURSOR GLOW — radial gradient follows mouse, system-colored
   ───────────────────────────────────────────────────────────────────── */

.cursor-glow{position:fixed;top:0;left:0;width:420px;height:420px;border-radius:50%;pointer-events:none;z-index:1;opacity:0;mix-blend-mode:screen;background:radial-gradient(circle,var(--glow-col,rgba(240,230,211,.05)) 0%,transparent 70%);transform:translate(-50%,-50%);transition:opacity .4s ease;will-change:transform}
.cursor-glow.active{opacity:1}

/* ─────────────────────────────────────────────────────────────────────
   9. SYSTEM AMBIENT LIGHTING — full-viewport color temperature
   ───────────────────────────────────────────────────────────────────── */

.sys-ambient{position:fixed;inset:0;pointer-events:none;z-index:-2;transition:background 1.6s cubic-bezier(.4,0,.2,1),opacity 1.6s;opacity:0}
.sys-ambient.active{opacity:1}

/* ─────────────────────────────────────────────────────────────────────
   10. WELCOME CINEMATIC — globe powers on like a space station
   ───────────────────────────────────────────────────────────────────── */

/* Dark veil over globe — fades out as welcome progresses */
.globe-veil{position:fixed;inset:0;background:rgba(12,10,8,.85);pointer-events:none;z-index:0;transition:opacity 3s cubic-bezier(.4,0,.2,1)}
.globe-veil.lifting{opacity:.3}
.globe-veil.gone{opacity:0;transition:opacity 1.8s cubic-bezier(.4,0,.2,1)}

/* (data panel scanline removed — welcome screen simplified) */

/* ─────────────────────────────────────────────────────────────────────
   11. ODOMETER NUMBER TRANSITIONS — digits slide vertically
   ───────────────────────────────────────────────────────────────────── */

.gc-num-slide{display:inline-flex;overflow:hidden;height:1.15em;vertical-align:bottom}
.gc-num-digit{display:inline-block;transition:transform .6s cubic-bezier(.16,1,.3,1);line-height:1.15;will-change:transform}
/* Each digit contains a strip of 0-9 stacked vertically; transform shifts to show active digit */
.gc-num-strip{display:flex;flex-direction:column}
.gc-num-strip span{display:block;height:1.15em;text-align:center}

/* ─────────────────────────────────────────────────────────────────────
   12. MARKET URGENCY GLOW — cards settling soon glow hotter
   ───────────────────────────────────────────────────────────────────── */

.gc[data-urgency="high"]{border-color:rgba(196,122,58,.2);box-shadow:0 0 20px rgba(196,122,58,.06),inset 0 1px 0 rgba(196,122,58,.12)}
.gc[data-urgency="high"]::before{background:rgba(196,122,58,.6) !important}
.gc[data-urgency="critical"]{border-color:rgba(220,80,60,.2);animation:urgencyPulse 3s ease-in-out infinite;box-shadow:0 0 28px rgba(220,80,60,.08),inset 0 1px 0 rgba(220,80,60,.15)}
.gc[data-urgency="critical"]::before{background:rgba(220,80,60,.6) !important}
@keyframes urgencyPulse{0%,100%{box-shadow:0 0 20px rgba(220,80,60,.06),inset 0 1px 0 rgba(220,80,60,.12)}50%{box-shadow:0 0 32px rgba(220,80,60,.12),inset 0 1px 0 rgba(220,80,60,.2)}}

/* ─────────────────────────────────────────────────────────────────────
   13. LOADING PROGRESS BAR — thin line during data fetch
   ───────────────────────────────────────────────────────────────────── */

.load-progress{position:fixed;top:0;left:0;height:2px;z-index:210;background:linear-gradient(90deg,transparent,var(--s3),var(--s4));width:0;opacity:0;transition:width .8s cubic-bezier(.4,0,.2,1),opacity .3s;pointer-events:none}
.load-progress.active{opacity:1}

/* ─────────────────────────────────────────────────────────────────────
   14. DATA REFRESH PULSE — visible ring on updated cards
   ───────────────────────────────────────────────────────────────────── */

.gc-data-pulse{position:absolute;inset:-4px;border-radius:14px;border:1px solid rgba(68,170,153,.2);opacity:0;pointer-events:none;z-index:5}
@keyframes dataPulseRing{0%{opacity:.5;transform:scale(1)}100%{opacity:0;transform:scale(1.04)}}
.gc-data-pulse.pulsing{animation:dataPulseRing 1.2s ease-out forwards}

/* ─────────────────────────────────────────────────────────────────────
   15. CONTEXTUAL CURSORS
   ───────────────────────────────────────────────────────────────────── */

/* Cursors — gc cursor defined in main block */
.gc-chart{cursor:crosshair}
.gc-actions{cursor:default}
.gc-btn{cursor:pointer}
.cmd-input{cursor:text}
.dock-tab{cursor:pointer}
#gl canvas{cursor:grab}
#gl canvas:active{cursor:grabbing}

/* ─────────────────────────────────────────────────────────────────────
   16. FILTER TRANSITION — cards exit/enter on system switch
   ───────────────────────────────────────────────────────────────────── */

/* Filter switching transition removed — cards always visible */

/* ═══════════════════════════════════════════════════════════════════════
   END PHASE 4 FEATURES
   ═══════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════
   PHASE 5 — SPARKLINE TOOLTIP, CARD LIGHT SWEEP, BADGE PULSE,
             ACTIVITY TYPING INDICATOR, MARKET OVERLAY UPGRADE
   ═══════════════════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────────────────────────────────
   17. SPARKLINE HOVER TOOLTIP — tracks mouse over chart area
   ───────────────────────────────────────────────────────────────────── */

.gc-spark-tip{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);padding:4px 8px;background:rgba(12,10,8,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(240,230,211,.1);border-radius:4px;font-family:var(--m);font-size:9px;color:var(--rift);white-space:nowrap;pointer-events:none;z-index:10;opacity:0;transition:opacity .15s}
.gc-spark-tip.visible{opacity:1}
.gc-spark-line{position:absolute;top:0;bottom:0;width:1px;background:rgba(240,230,211,.15);pointer-events:none;z-index:9;opacity:0;transition:opacity .15s}
.gc-spark-line.visible{opacity:1}
.gc-spark-dot{position:absolute;width:6px;height:6px;border-radius:50%;border:1.5px solid var(--rift);background:rgba(12,10,8,.8);pointer-events:none;z-index:10;opacity:0;transition:opacity .15s;transform:translate(-50%,-50%)}
.gc-spark-dot.visible{opacity:1}

/* Light sweep — ::after defined in main .gc block */

/* ─────────────────────────────────────────────────────────────────────
   19. BADGE NOTIFICATION PULSE — top bar badges flash on data events
   ───────────────────────────────────────────────────────────────────── */

.bdg.bdg-pulse{animation:badgePulse .6s cubic-bezier(.16,1,.3,1)}
@keyframes badgePulse{0%{transform:scale(1)}30%{transform:scale(1.15)}60%{transform:scale(.95)}100%{transform:scale(1)}}

/* ─────────────────────────────────────────────────────────────────────
   (activity typing removed) */

/* ─────────────────────────────────────────────────────────────────────
   21. MARKET OVERLAY — FROSTED GLASS UPGRADE
   ───────────────────────────────────────────────────────────────────── */

.mkt-head{background:rgba(19,17,16,.85)!important;backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4)}
.mkt-body{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.mkt-main,.mkt-side{background:rgba(19,17,16,.7);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}

/* (welcome stats counter glow removed — welcome screen simplified) */

/* ─────────────────────────────────────────────────────────────────────
   23. FORECAST BUTTON MICRO-INTERACTIONS — press ripple + depress
   ───────────────────────────────────────────────────────────────────── */

.gc-btn{position:relative;overflow:hidden}
.gc-btn .fc-ripple{position:absolute;width:120px;height:120px;border-radius:50%;transform:translate(-50%,-50%) scale(0);opacity:.3;pointer-events:none;animation:fcRipple .5s ease-out forwards}
.gc-btn-yes .fc-ripple{background:rgba(68,170,153,.25)}
.gc-btn-no .fc-ripple{background:rgba(196,122,90,.25)}
@keyframes fcRipple{to{transform:translate(-50%,-50%) scale(2);opacity:0}}

/* Success state after forecast */
.gc-btn.fc-confirmed{background:rgba(68,170,153,.15)!important;border-color:rgba(68,170,153,.3)!important}
.gc-btn.fc-confirmed::after{content:'\2713';position:absolute;right:10px;font-size:11px;color:#4a9;animation:fcCheck .3s ease}
@keyframes fcCheck{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}

/* ─────────────────────────────────────────────────────────────────────
   24. GRID SCROLL PROGRESS — thin right-edge bar showing scroll position
   ───────────────────────────────────────────────────────────────────── */

.grid-scroll-progress{position:fixed;top:0;right:0;width:3px;z-index:30;pointer-events:none;opacity:0;transition:opacity .3s}
.grid-scroll-progress.visible{opacity:1}
.grid-scroll-fill{width:100%;background:linear-gradient(180deg,var(--s3),var(--s4));border-radius:0 0 2px 2px;transition:height .1s linear}

/* (old gc-live-badge removed — new gc-live-dot in gc-head) */

/* (confetti + old gc classes removed) */

/* ═══ MARKET NAVIGATION — prev/next arrows in header ═══ */
.mkt-nav{display:flex;gap:3px;margin-left:6px}
.mkt-nav-btn{width:22px;height:22px;border-radius:4px;border:1px solid rgba(240,230,211,.06);background:rgba(240,230,211,.02);color:rgba(240,230,211,.3);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:11px;font-family:var(--d);transition:all .15s;line-height:1}
.mkt-nav-btn:hover{background:rgba(240,230,211,.08);color:rgba(240,230,211,.7);border-color:rgba(240,230,211,.12)}

/* ═══ TYPING CURSOR AUTO-HIDE ═══ */
@keyframes narFade{0%,80%{opacity:1}100%{opacity:0}}

/* ═══ SCRUBBER DENSITY GRADIENT ═══ */
.mkt-scrub-density{position:absolute;top:50%;left:0;right:0;height:3px;transform:translateY(-50%);border-radius:2px;pointer-events:none;opacity:.4}

/* ═══ 3D ORDER BOOK — glass planes with CSS 3D transforms ═══ */
.book-3d{perspective:600px;margin-bottom:14px}
.book-3d-stage{transform-style:preserve-3d;transform:rotateX(18deg);padding:4px 0 20px}
.book-3d-summary{display:flex;height:32px;border-radius:5px;overflow:hidden;margin-bottom:14px}
.book-3d-yes{background:linear-gradient(135deg,var(--s5),rgba(61,107,79,.6));display:flex;align-items:center;justify-content:center;font-family:var(--d);font-size:12px;font-weight:300;color:white;transition:width .8s;border-right:1px solid rgba(240,230,211,.06)}
.book-3d-no{background:rgba(240,230,211,.03);display:flex;align-items:center;justify-content:center;font-family:var(--d);font-size:12px;font-weight:300;color:rgba(240,230,211,.3);flex:1}
.book-3d-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;transform-style:preserve-3d}
.book-3d-col{transform-style:preserve-3d}
.book-3d-col-title{font-family:var(--d);font-size:8px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:6px;display:flex;justify-content:space-between;color:rgba(240,230,211,.2)}
.book-3d-plane{position:relative;padding:5px 8px;margin-bottom:3px;border-radius:4px;display:flex;justify-content:space-between;align-items:center;font-family:var(--m);font-size:9px;color:rgba(240,230,211,.45);transform:translateZ(calc(var(--z) * 1px));transition:transform .6s cubic-bezier(.16,1,.3,1),opacity .6s,filter .6s;opacity:calc(1 + var(--z) * 0.006);filter:blur(calc(var(--z) * -0.02px));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(240,230,211,.03);overflow:hidden}
.book-3d-plane.bid{background:linear-gradient(135deg,rgba(61,107,79,.12),rgba(61,107,79,.02))}
.book-3d-plane.bid .b3-price{color:var(--s5);font-weight:600}
.book-3d-plane.ask{background:linear-gradient(135deg,rgba(196,122,58,.12),rgba(196,122,58,.02))}
.book-3d-plane.ask .b3-price{color:var(--s3);font-weight:600}
.book-3d-plane::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(240,230,211,.06),transparent)}
.book-3d-plane .b3-fill{position:absolute;bottom:0;left:0;height:100%;border-radius:4px;transition:width .8s cubic-bezier(.16,1,.3,1);pointer-events:none}
.book-3d-plane.bid .b3-fill{background:linear-gradient(90deg,rgba(61,107,79,.15),rgba(61,107,79,.02))}
.book-3d-plane.ask .b3-fill{background:linear-gradient(270deg,rgba(196,122,58,.15),rgba(196,122,58,.02))}
.book-3d-plane .b3-size{font-size:8px;color:rgba(240,230,211,.25)}
.book-3d-plane:hover{border-color:rgba(240,230,211,.08);transform:translateZ(calc(var(--z) * 1px + 5px));opacity:1;filter:none}
.book-3d-prob{height:8px;background:rgba(240,230,211,.03);border-radius:4px;overflow:hidden;margin-bottom:10px}
.book-3d-prob-fill{height:100%;border-radius:4px;transition:width 1s}

/* ═══ AI NARRATIVE — Bloomberg-style commentary ═══ */
.mkt-narrative{padding:10px 12px;border-radius:6px;border:1px solid rgba(240,230,211,.04);background:rgba(240,230,211,.01);font-family:var(--b);font-size:10px;line-height:1.65;color:rgba(240,230,211,.4);position:relative}
.mkt-narrative::before{content:'AI';position:absolute;top:6px;right:8px;font-family:var(--m);font-size:7px;color:rgba(196,122,58,.3);letter-spacing:.5px}
.mkt-narrative .nar-em{color:rgba(240,230,211,.65);font-weight:500}
.mkt-narrative .nar-up{color:var(--s5)}
.mkt-narrative .nar-down{color:var(--s3)}
.mkt-narrative .nar-tag{display:inline-block;padding:1px 5px;border-radius:3px;font-family:var(--m);font-size:7px;background:rgba(240,230,211,.04);color:rgba(240,230,211,.3);margin-left:3px;vertical-align:middle}
.mkt-nar-typing{display:inline-block;width:4px;height:11px;background:var(--s3);border-radius:1px;animation:narBlink 1s step-end infinite;vertical-align:middle;margin-left:2px}
@keyframes narBlink{0%,100%{opacity:1}50%{opacity:0}}

/* ═══ CORRELATION MATRIX — cross-market heatmap ═══ */
.mkt-corr{display:grid;gap:1px;margin-bottom:6px}
.mkt-corr-cell{aspect-ratio:1;border-radius:2px;display:flex;align-items:center;justify-content:center;font-family:var(--m);font-size:6px;color:rgba(240,230,211,.35);cursor:default;transition:transform .15s,box-shadow .15s;position:relative}
.mkt-corr-cell:hover{transform:scale(1.8);z-index:2;box-shadow:0 0 8px rgba(0,0,0,.6)}
.mkt-corr-cell.c-pos{background:rgba(61,107,79,var(--ci))}
.mkt-corr-cell.c-neg{background:rgba(196,122,58,var(--ci))}
.mkt-corr-cell.c-self{background:rgba(240,230,211,.06)}
.mkt-corr-cell.c-hl{outline:1px solid rgba(240,230,211,.1)}
.mkt-corr-labels{display:flex;gap:1px;margin-bottom:2px}
.mkt-corr-label{flex:1;font-family:var(--m);font-size:5px;color:rgba(240,230,211,.15);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mkt-corr-scale{display:flex;justify-content:space-between;font-family:var(--m);font-size:6px;color:rgba(240,230,211,.1);margin-top:4px}

/* ═══ REPLAY SCRUBBER — draggable timeline ═══ */
.mkt-scrubber{position:relative;height:28px;margin:4px 0 2px;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none}
.mkt-scrub-track{position:absolute;top:50%;left:0;right:0;height:3px;transform:translateY(-50%);background:rgba(240,230,211,.04);border-radius:2px;overflow:hidden}
.mkt-scrub-fill{height:100%;background:linear-gradient(90deg,var(--s2),var(--s3));border-radius:2px;width:100%}
.mkt-scrub-handle{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:var(--s3);border:2px solid rgba(240,230,211,.15);transform:translate(-50%,-50%);left:100%;box-shadow:0 0 8px rgba(196,122,58,.3);cursor:grab}
.mkt-scrub-handle:active{cursor:grabbing;transform:translate(-50%,-50%) scale(1.25);box-shadow:0 0 14px rgba(196,122,58,.5)}
.mkt-scrub-time{display:flex;justify-content:space-between;font-family:var(--m);font-size:7px;color:rgba(240,230,211,.1)}
.mkt-scrub-tooltip{position:absolute;top:-18px;left:100%;transform:translateX(-50%);background:#1A0E08;border:1px solid rgba(240,230,211,.08);border-radius:3px;padding:2px 6px;font-family:var(--m);font-size:7px;color:rgba(240,230,211,.45);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s}
.mkt-scrubber:hover .mkt-scrub-tooltip{opacity:1}

/* ── Loading skeleton cards ── */
.gc.gc-skeleton{opacity:1;transform:none;background:rgba(240,230,211,.02);border:1px solid rgba(240,230,211,.04);border-radius:12px;padding:16px;min-height:180px}
.gc-skel-bar{height:12px;background:linear-gradient(90deg,rgba(240,230,211,.03) 25%,rgba(240,230,211,.06) 50%,rgba(240,230,211,.03) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px;margin-bottom:8px}
.gc-skel-bar.w60{width:60%}
.gc-skel-bar.w40{width:40%}
.gc-skel-bar.w80{width:80%}
.gc-skel-bar.h24{height:24px}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ── Forecast form helpers ── */
.mkt-fc-val-unit{font-size:11px;font-weight:300;color:rgba(240,230,211,.3)}
.mkt-fc-range{display:flex;justify-content:space-between;font-family:var(--m);font-size:8px;color:rgba(240,230,211,.15);margin-top:2px}

/* ── Responsive breakpoints ── */
@media(max-width:900px){
  .resolved-strip{grid-template-columns:1fr}
  .story-card{padding:10px 12px}
}
@media(max-width:768px){
  .main{width:100%;margin-left:0}
  /* 3D order book — flatten on mobile for performance */
  .book-3d{perspective:none}
  .book-3d-stage{transform:none}
  .book-3d-plane{transform:none!important;opacity:1!important;filter:none!important;backdrop-filter:none;-webkit-backdrop-filter:none}
  /* Larger scrubber handle for touch */
  .mkt-scrub-handle{width:20px;height:20px}
  .mkt-scrubber{height:36px}
  /* Correlation matrix — larger cells */
  .mkt-corr-cell{font-size:7px}
  /* Narrative — readable on small screens */
  .mkt-narrative{font-size:11px}
  /* Chart toolbar — wrap on narrow */
  .mkt-chart-toolbar{flex-wrap:wrap;gap:3px}
  /* Hero bar — stack vertically */
  .mkt-hb-q{min-width:100%}
}
@media(max-width:600px){
  .ws-card{max-width:calc(100vw - 48px)}
  .ws-emm{max-width:calc(100vw - 48px)}
  .ws-headline{font-size:22px}
  .about-page{padding:32px 24px 48px}
  .ab-grid{grid-template-columns:1fr}
  .ab-sources{grid-template-columns:1fr 1fr}
  .gc{min-width:100%}
  .card-grid{grid-template-columns:1fr}
  .gc-actions{min-height:44px}
  .gc-btn{min-height:44px}
  .top{padding:6px 8px}
  .top .logo-text{font-size:12px}
  .mkt-container{padding:12px}
  .mkt-tv-chart{height:260px}
  .mkt-hb-val{font-size:28px}
  .mkt-hb-stats{gap:12px}
  .mkt-nav-btn{width:28px;height:28px;font-size:14px}
  .mkt-heatmap{grid-template-columns:repeat(7,1fr)}
  .control-bar{padding:4px 8px}
  .dock-row{gap:4px}
  .dock-row .bdg{font-size:8px;padding:3px 6px}
}

/* ─── REDUCED MOTION — accessibility ─── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .ambient-particles{display:none}
  .cursor-glow{display:none}
  .data-ticker-inner{animation:none!important}
  .gc{transition:none!important}
  .gc:hover{transform:none!important}
  .gc::after{display:none}
  .timeline-play.playing{animation:none}
}

/* ═══════════════════════════════════════════
   ADMIN DASHBOARD
   ═══════════════════════════════════════════ */
.admin-box{max-width:1100px;width:96vw}
.adm-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0;border-bottom:1px solid rgba(240,230,211,.06)}
.adm-title{font-family:var(--d);font-size:18px;font-weight:300;color:var(--rift);padding-bottom:14px}
.adm-close{background:none;border:none;color:rgba(240,230,211,.3);font-size:24px;cursor:pointer;padding:4px 8px}
.adm-close:hover{color:var(--rift)}
.adm-tabs{display:flex;gap:0;border-bottom:1px solid rgba(240,230,211,.06);padding:0 24px}
.adm-tab{font-family:var(--m);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:rgba(240,230,211,.3);padding:10px 14px;cursor:pointer;border-bottom:2px solid transparent;transition:color .2s}
.adm-tab:hover{color:rgba(240,230,211,.6)}
.adm-tab.active{color:var(--rift);border-bottom-color:var(--s5)}
.adm-refresh{margin-left:auto;color:rgba(240,230,211,.2)}
.adm-refresh:hover{color:var(--s5)}
.adm-content{padding:20px 24px 24px;max-height:70vh;overflow-y:auto}
.adm-loading{font-family:var(--m);font-size:11px;color:rgba(240,230,211,.25);text-align:center;padding:60px 0}

/* Stats grid */
.adm-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:24px}
.adm-stat-card{background:rgba(240,230,211,.02);border:1px solid rgba(240,230,211,.04);border-radius:8px;padding:16px;text-align:center}
.adm-stat-val{font-family:var(--d);font-size:24px;font-weight:300;color:var(--rift)}
.adm-stat-label{font-family:var(--m);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:rgba(240,230,211,.3);margin-top:4px}
.adm-stat-sub{font-family:var(--m);font-size:8px;color:rgba(240,230,211,.15);margin-top:2px}

/* Sections */
.adm-section{margin-bottom:24px}
.adm-section-title{font-family:var(--d);font-size:13px;font-weight:300;color:rgba(240,230,211,.5);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid rgba(240,230,211,.04)}

/* Tables */
.adm-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.adm-table{width:100%;border-collapse:collapse;font-family:var(--m);font-size:10px}
.adm-table th{text-align:left;color:rgba(240,230,211,.3);font-weight:500;padding:6px 10px;border-bottom:1px solid rgba(240,230,211,.06);white-space:nowrap;font-size:9px;letter-spacing:.04em;text-transform:uppercase}
.adm-table td{padding:6px 10px;border-bottom:1px solid rgba(240,230,211,.03);color:rgba(240,230,211,.55);white-space:nowrap}
.adm-table tr:hover td{background:rgba(240,230,211,.02)}
.adm-table-full th,.adm-table-full td{font-size:9px;padding:5px 8px}
.adm-sortable{cursor:pointer}
.adm-sortable:hover{color:rgba(240,230,211,.6)}
.adm-mono{font-family:var(--m);font-size:9px;opacity:.6}
.adm-slug{font-family:var(--m);color:var(--s5);opacity:.7}
.adm-empty{text-align:center;color:rgba(240,230,211,.15);padding:20px}

/* Badges */
.adm-cred{font-size:8px;padding:1px 5px;border-radius:3px;background:rgba(240,230,211,.04);margin-right:4px}
.adm-cred.cred-master{background:rgba(255,180,50,.12);color:#f0b030}
.adm-cred.cred-expert{background:rgba(100,200,150,.1);color:#5cb88a}
.adm-live{color:#4a9;font-size:8px;font-weight:600}
.adm-no-live{color:rgba(240,230,211,.15);font-size:8px}
.adm-settled{color:var(--s5);font-size:8px}
.adm-active{color:#4a9;font-size:8px}
.adm-ep-pos{color:#4a9}
.adm-ep-neg{color:#e05555}

/* Toolbar */
.adm-toolbar{margin-bottom:12px}
.adm-search{background:rgba(240,230,211,.03);border:1px solid rgba(240,230,211,.06);border-radius:6px;color:var(--rift);font-family:var(--m);font-size:11px;padding:8px 12px;width:280px;outline:none}
.adm-search:focus{border-color:rgba(240,230,211,.15)}
.adm-user-count{font-family:var(--m);font-size:9px;color:rgba(240,230,211,.2);margin-bottom:8px}

@media(max-width:700px){
  .admin-box{width:100vw;max-width:100vw;border-radius:0}
  .adm-stats-grid{grid-template-columns:repeat(2,1fr)}
  .adm-search{width:100%}
}
