/* css/app.css: the Trade Desk stylesheet (19 Oct 2026). Every rule that was inline in index.html's head, in its original
   order. index.html inlines only the landing's share of each section (made by _dev-tools/split-css.js), and a signed-in or
   remembered device, or anyone the moment they sign in, loads this file right after those blocks, so the app is styled
   exactly as before. Edit CSS HERE, then run node _dev-tools/split-css.js and bump css/app.css?v= in index.html. */
/*@@ section rbt-css-main @@*/
:root{
  --gold:#f59e0b; --gold2:#fcd34d; --gold-deep:#d4880a;
  --gold-dim:rgba(245,158,11,0.12); --gold-border:rgba(245,158,11,0.32); --gold-glow:rgba(245,158,11,0.07);
  --wc:255,255,255;   /* "white" channels for on-dark tints/text/borders, light theme flips this to dark ink */
  --bg:#07070f; --surface:#16161f; --surface2:#21212e;
  --border:rgba(var(--wc),0.10); --border2:rgba(var(--wc),0.18);
  --glass-border:rgba(var(--wc),0.10);
  --text:#ffffff; --text2:#c4ccd9; --text3:#96a1b8;
  --green:#22a06b; --green-dim:rgba(34,160,107,0.12); --green-border:rgba(34,160,107,0.25);
  --lime:#a9bf52; --lime-dim:rgba(169,191,82,0.12); --lime-border:rgba(169,191,82,0.25);
  --red:#c93b3b; --red-dim:rgba(201,59,59,0.12); --red-border:rgba(201,59,59,0.25);
  --blue:#3568d4; --blue-dim:rgba(53,104,212,0.12); --blue-border:rgba(53,104,212,0.25);
  --orange:#e35336; --orange-dim:rgba(227,83,54,0.12);
  --purple:#9966cc; --purple-dim:rgba(153,102,204,0.12); --purple-border:rgba(153,102,204,0.25);
  --slate:#64748b; --slate-dim:rgba(100,116,139,0.10);
  --serif:'Instrument Serif',Georgia,serif;      /* editorial display, matches rbtrading.site */
  --wordmark:'Schibsted Grotesk','Inter',sans-serif;  /* brand wordmark typeface */
}
*{margin:0;padding:0;box-sizing:border-box;}
:where(#app) :where(*){min-width:0;}
/* smooth scrolling is opted into per call (behavior:"smooth"), not global —
   as a global rule it animates every script scroll and can make the page feel
   like it is fighting the first wheel notch or swipe. */
body{
  font-family:'Inter',system-ui,sans-serif; background:var(--bg); color:var(--text);
  min-height:100vh; -webkit-font-smoothing:antialiased; overflow-x:clip;
}
body::before{
  content:''; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(ellipse 70% 40% at 50% -5%, rgba(245,158,11,0.07) 0%, transparent 60%),
    radial-gradient(ellipse 55% 50% at 88% 100%, rgba(53,104,212,0.035) 0%, transparent 60%);
}
.glass{
  background:rgba(22,29,46,0.74);
  border:1px solid var(--glass-border); border-top:1px solid rgba(var(--wc),0.10);
  box-shadow:0 24px 60px rgba(0,0,0,0.45), inset 0 1px 0 rgba(var(--wc),0.04);
}
/* LIGHTER AT REST (5 Oct 2026): .glass no longer carries backdrop-filter. Every in-flow panel (topbar, glance, tools,
   prop firms, cards) sits over the soft body gradient, where a 26px blur changed nothing visible but turned each panel
   into a blur layer the GPU re-rasterised on every frame. Only the sheets that float over real content keep a blur,
   and at 12px, which reads the same as 26px on a .74 background. */
.cp-card.glass,.up-card.glass,.dc-card.glass{backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);}
.mono{font-family:'DM Mono',monospace;}

/* ===== LOGIN ===== */
#login{position:relative;z-index:10;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;}
.login-card{border-radius:24px;padding:clamp(34px,5vw,52px) clamp(26px,4vw,46px);width:100%;max-width:430px;text-align:center;position:relative;overflow:hidden;}
.login-card::before{content:'';position:absolute;top:0;left:14%;right:14%;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.6;}
.brand-lockup{display:inline-flex;align-items:center;gap:11px;margin-bottom:26px;}
.mark{width:40px;height:40px;border-radius:11px;background:linear-gradient(145deg,var(--gold),var(--gold-deep));display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 6px 20px rgba(245,158,11,.35),inset 0 1px 0 rgba(var(--wc),.25);flex-shrink:0;}
.brand-logo{width:40px;height:40px;border-radius:11px;object-fit:cover;flex-shrink:0;box-shadow:0 6px 20px rgba(245,158,11,.32);}
.tb-left .brand-logo{width:36px;height:36px;border-radius:10px;}
.splash-logo{width:72px;height:72px;border-radius:18px;object-fit:cover;box-shadow:0 12px 34px rgba(245,158,11,.32);animation:splashpulse 1.5s ease-in-out infinite;}
.brand-name{font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.4px;}
.brand-name em{font-style:normal;background:linear-gradient(135deg,var(--gold),var(--gold2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.login-h{font-size:clamp(22px,3.5vw,27px);font-weight:800;color:var(--text);letter-spacing:-.6px;margin-bottom:10px;}
.login-sub{font-size:13.5px;color:var(--text2);line-height:1.65;margin-bottom:30px;}
.login-sub b{color:var(--gold);font-weight:600;}
.pw-row{display:flex;gap:8px;margin-bottom:12px;}
.login-input{flex:1;background:rgba(7,9,15,0.7);border:1px solid var(--border2);border-radius:12px;padding:15px 18px;font-size:15px;color:var(--text);outline:none;transition:border-color .2s,box-shadow .2s;font-family:'DM Mono',monospace;letter-spacing:1px;}
.login-input:focus{border-color:rgba(245,158,11,.55);box-shadow:0 0 0 3px rgba(245,158,11,.08);}
.eye{padding:0 16px;background:rgba(var(--wc),.04);border:1px solid var(--border2);border-radius:12px;color:var(--text2);cursor:pointer;font-size:15px;transition:.2s;}
.eye:hover{border-color:var(--gold-border);color:var(--gold);}
.btn-gold{width:100%;border:none;border-radius:12px;padding:15px;font-size:15px;font-weight:700;color:#0a0a12;cursor:pointer;font-family:'Inter',sans-serif;position:relative;overflow:hidden;background:linear-gradient(145deg,var(--gold),var(--gold-deep));box-shadow:0 6px 24px rgba(245,158,11,.28),inset 0 1px 0 rgba(var(--wc),.25);transition:transform .18s,box-shadow .18s;}
.btn-gold::before{content:'';position:absolute;top:0;left:-110%;width:70%;height:100%;background:linear-gradient(90deg,transparent,rgba(var(--wc),.22),transparent);transform:skewX(-16deg);transition:left .55s;}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(245,158,11,.38);}
.btn-gold:hover::before{left:140%;}
.btn-gold:active{transform:scale(.98);}
.login-input.shake{animation:shake .35s ease;}
@keyframes shake{0%,100%{transform:translateX(0);}20%{transform:translateX(-9px);}60%{transform:translateX(7px);}80%{transform:translateX(-3px);}}
.deny-help{margin-top:14px;padding:14px 15px;border:1px solid rgba(245,158,11,.28);background:rgba(245,158,11,.05);border-radius:14px;text-align:left;animation:dhIn .35s cubic-bezier(.22,1,.36,1) both;}
.deny-help[hidden]{display:none;}
@keyframes dhIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}
.dh-row{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;line-height:1.55;color:var(--text2);}
.dh-row b{color:var(--text);}
.dh-row .svgi{flex:none;width:15px;height:15px;margin-top:2px;color:var(--gold);}
.dh-split{display:flex;align-items:center;gap:10px;margin:13px 0 10px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);}
.dh-split:before,.dh-split:after{content:'';flex:1;height:1px;background:rgba(var(--wc),.1);}
.dh-primary{display:block;text-align:center;background:linear-gradient(145deg,var(--gold),#c8880e);color:#060a12;font-weight:800;font-size:14px;padding:11px 14px;border-radius:11px;text-decoration:none;}
.dh-primary span{display:block;margin-top:3px;font-size:10.5px;font-weight:700;opacity:.8;}
.dh-secondary{display:block;text-align:center;margin-top:9px;font-size:12.5px;font-weight:700;color:var(--gold);text-decoration:none;}
.dh-tertiary{display:block;text-align:center;margin-top:8px;font-size:11.5px;color:var(--text3);text-decoration:none;}
.dh-tertiary:hover{color:var(--text2);}
.login-err{color:var(--red);font-size:13px;font-weight:600;min-height:0;margin-top:0;}
.login-err:not(:empty){margin-top:6px;}
.login-status{color:var(--text3);font-size:12.5px;margin-top:0;min-height:0;}
.login-status:not(:empty){margin-top:7px;}
.login-foot{margin-top:26px;padding-top:20px;border-top:1px solid var(--border);font-size:12px;color:var(--text3);line-height:1.85;}
.login-foot a{color:var(--gold);text-decoration:none;font-weight:600;}
.login-foot a:hover{text-decoration:underline;}

/* login: recent wins showcase + upgrade CTA */
.login-wins{margin:14px 0 26px;}
@media(min-width:1200px){
  /* Cap the row narrower than the card so 9 pills break into three tidy
     rows of three rather than stretching into two long ones. */
  .login-wins-row{gap:7px;max-width:382px;margin:0 auto;}
  .login-win-pill{padding:7px 13px;font-size:12px;}
}
.login-wins-head{font-size:10px;font-weight:800;color:var(--green);letter-spacing:.7px;text-transform:uppercase;margin-bottom:10px;text-align:center;}
.login-wins-row{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;}
.login-win-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:20px;background:linear-gradient(135deg,rgba(34,160,107,0.14),rgba(34,160,107,0.03));border:1px solid var(--green-border);font-size:11px;font-weight:700;color:var(--text);letter-spacing:.2px;}
.login-win-pill b{color:var(--green);font-family:'DM Mono';font-weight:500;}
.login-cta{margin-top:16px;padding-top:20px;border-top:1px solid var(--border);font-size:12.5px;color:var(--text2);text-align:center;line-height:1.65;}
.login-cta strong{display:block;color:var(--text);font-weight:700;margin-bottom:4px;font-size:14px;}
.login-cta a.cta-btn{color:#0a0a12;background:linear-gradient(145deg,var(--gold),var(--gold-deep));font-weight:700;padding:9px 18px;border-radius:10px;display:inline-block;margin-top:10px;text-decoration:none;font-size:13px;transition:transform .18s,box-shadow .18s;box-shadow:0 4px 14px rgba(245,158,11,.28);}
.login-cta a.cta-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(245,158,11,.38);}

/* login: two-column layout with upsell pitch */
.login-layout{display:flex;gap:54px;align-items:center;max-width:1140px;width:100%;}
.login-pitch{flex:1;min-width:0;}
.login-card{flex-shrink:0;}
.pitch-eyebrow{font-size:12px;font-weight:800;letter-spacing:2px;color:var(--gold);text-transform:uppercase;margin-bottom:16px;}
.pitch-h{font-size:clamp(30px,3.6vw,46px);font-weight:800;line-height:1.1;letter-spacing:-1px;color:var(--text);margin-bottom:16px;}
.pitch-h span{background:linear-gradient(135deg,var(--gold),var(--gold2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.pitch-sub{font-size:15px;color:var(--text2);line-height:1.65;margin-bottom:28px;max-width:520px;}
.pitch-list{display:flex;flex-direction:column;gap:15px;margin-bottom:30px;}
.pitch-item{display:flex;gap:14px;align-items:flex-start;}
.pitch-ico{width:42px;height:42px;border-radius:12px;background:var(--gold-dim);border:1px solid var(--gold-border);display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0;}
.pitch-q{font-size:15px;font-weight:700;color:var(--text);margin-bottom:3px;line-height:1.35;}
.pitch-a{font-size:13.5px;color:var(--text2);line-height:1.55;}
.pitch-cta{display:inline-block;background:linear-gradient(145deg,var(--gold),var(--gold-deep));color:#0a0a12;font-weight:700;font-size:15px;padding:15px 30px;border-radius:13px;text-decoration:none;box-shadow:0 6px 24px rgba(245,158,11,.28);transition:transform .18s,box-shadow .18s;}
.pitch-cta:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(245,158,11,.40);}
.pitch-price{font-size:12.5px;color:var(--text3);margin-top:14px;}
/* proof wall, social proof section below the pitch CTA */
.proof-wall{margin-top:24px;}
/* horizontal scroll gallery of image proof cards */
.proof-gallery{display:flex;gap:10px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab;}
.proof-gallery::-webkit-scrollbar{display:none;}
.proof-gallery:active{cursor:grabbing;}
.proof-img-card{flex-shrink:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:var(--surface);scroll-snap-align:start;display:flex;flex-direction:column;}
.proof-img-card.cert{width:148px;}
.proof-img-card.trade{width:268px;}
.proof-img-card img{width:100%;display:block;flex:1;object-fit:cover;}
.proof-img-cap{padding:5px 9px 7px;font-size:10px;color:var(--text3);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.proof-img-cap strong{color:var(--gold);}
.proof-sub{font-size:11px;color:var(--text3);margin-top:10px;margin-bottom:14px;line-height:1.5;}
.proof-reviews-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.review-card{background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:13px 14px;display:flex;flex-direction:column;gap:8px;}
.review-stars{color:var(--gold);font-size:12px;letter-spacing:1px;}
.review-text{font-size:12px;color:var(--text2);line-height:1.55;font-style:italic;}
.review-author{font-size:10.5px;color:var(--text3);font-weight:600;}
@media(max-width:580px){.proof-reviews-grid{grid-template-columns:1fr;}}
@media(max-width:920px){
  .login-layout{flex-direction:column;gap:26px;align-items:stretch;}
  /* promote the pitch's two halves into the column so the login card sits between them */
  .login-pitch{display:contents;}
  .login-pitch-top{order:1;text-align:center;max-width:600px;margin:0 auto;}
  .login-pitch-top .pitch-sub{margin:0 auto 4px;}
  .login-card{order:2;width:100%;max-width:440px;margin:0 auto;}
  .login-pitch-body{order:3;width:100%;max-width:560px;margin:0 auto;}
  .pitch-h{font-size:clamp(27px,7vw,34px);}
}

/* inline live mini chart per asset (lazy loaded on scroll, candlesticks) */
.asset-chart{width:100%;max-width:none;min-width:0;height:auto;aspect-ratio:1.75/1;min-height:150px;max-height:300px;margin-top:9px;border-radius:7px;overflow:hidden;background:rgba(var(--wc),0.02);border:1px solid var(--border);position:relative;}
/* ===== TRADE ROWS (11 Sep 2026): chart | trade sheet =====
   Swing, Forex and Squeeze share one composition. The chart cell is a fixed
   column; the sheet takes every remaining pixel: header line (state badge,
   then the trend and DeMarker readings pushed to the right edge), the idea
   in a readable measure, the levels as one strip, one row of actions. */
th.th-asset,td.rk-asset{width:34%;min-width:290px;max-width:460px;}   /* a share of the row: grows on wide screens, shrinks on narrow ones */
/* On a big screen the sheet was running out of things to say long before it ran
   out of width, leaving a void beside the levels while the chart stayed small.
   The chart takes more of the row instead (owner, 14 Sep 2026). */
@media(min-width:1180px){ th.th-asset,td.rk-asset{width:40%;max-width:560px;} }
@media(min-width:1500px){ th.th-asset,td.rk-asset{width:43%;max-width:660px;} }
td.rk-asset{vertical-align:top;padding:16px 12px 16px 16px;}
td.rk-sheet{vertical-align:middle;padding:16px 20px 16px 8px;}
/* the sheet sits centred against the chart; a long idea simply makes the row taller */
.rk-num{display:inline-block;font-family:'DM Mono';font-size:10.5px;color:var(--text3);margin-right:7px;vertical-align:1px;}
.ts-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:28px;}
.ts-head .setup{flex-basis:100%;order:9;margin-top:6px;}
.ts-meta{margin-left:auto;display:inline-flex;align-items:center;gap:12px;}
.ts-meta .ema{padding:4px 10px;}
.ts-meta .demw{min-width:112px;}
.ts-stats{gap:14px;font-size:12px;}
.ts-stats .meta{color:var(--text3);font-size:11.5px;}
.rk-sheet .note{max-width:72ch;margin-top:10px;font-size:13.5px;line-height:1.6;}
.rk-sheet .lvls{display:inline-flex;flex-wrap:wrap;gap:0;margin-top:12px;background:rgba(var(--wc),.03);border:1px solid var(--border);border-radius:12px;padding:9px 4px;}
.rk-sheet .lvls.lvls-empty{background:none;border:0;padding:0;}   /* no published levels: only the live price tag can appear here, unboxed */
.rk-sheet .lvl{padding:0 14px;border-left:1px solid var(--border);}
.rk-sheet .lvl:first-child{border-left:0;}
.rk-sheet .lvl-live{padding-left:14px;}
.ts-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px;}
.ts-actions>*{margin:0 !important;}
.ts-actions .se-earn:empty,.ts-actions .se-alert:empty{display:none;}
.ts-actions .se-earn,.ts-actions .se-alert,.ts-actions .ts-fund,.ts-actions .alerts-slot{display:inline-flex;align-items:center;}
.ts-actions .al-ctl{margin-top:0;}
.mcard .ts-actions{margin-top:10px;}
@media(min-width:821px) and (max-width:1150px){
  th.th-asset,td.rk-asset{width:33%;min-width:250px;}
  td.rk-asset{padding:14px 10px 14px 12px;}
  td.rk-sheet{padding:14px 14px 14px 6px;}
  .asset-chart{min-height:136px;}
  .rk-sheet .note{max-width:none;font-size:13px;}
  .ts-meta{gap:8px;}
  .ts-meta .demw{min-width:96px;}
}
@media(max-width:820px){
  /* iOS auto-zooms the page when a focused input has font-size under 16px,
     and never zooms back out - the login field was loading members into a
     permanently zoomed, side-scrolling page. 16px on touch widths is the
     documented fix; !important because component rules scatter 12-15px. */
  input,select,textarea{font-size:16px !important;}

  /* Cards stack on small screens, drop the fixed widths entirely. */
  th.th-asset,td.rk-asset{width:auto;min-width:0;}
}
.earn-chip{display:none;align-items:center;gap:4px;font-size:10px;font-weight:700;color:var(--text3);background:rgba(var(--wc),.04);border:1px solid var(--border);border-radius:12px;padding:2px 8px;margin:4px 0 0;width:max-content;}
.earn-chip .svgi{width:.95em;height:.95em;}
.earn-chip.far{opacity:.72;}
.earn-chip.soon{color:var(--orange);border-color:rgba(227,83,54,.35);background:rgba(227,83,54,.08);}
.asset-chart .minichart-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:9px;letter-spacing:.5px;text-transform:uppercase;font-weight:700;}
.asset-chart .tradingview-widget-container,
.asset-chart .tradingview-widget-container__widget,
.asset-chart iframe{height:100% !important;width:100% !important;display:block;border:0;}
/* The widget wraps the iframe in two divs of its own; without this they
   shrink-to-fit on narrow screens and the embed sits inset while our canvas
   charts span the full card. */
.asset-chart .tradingview-widget-container{width:100% !important;height:100% !important;}
.asset-chart .tradingview-widget-container__widget{width:100% !important;height:100% !important;}
.asset-chart > div{width:100%;height:100%;}
@media(max-width:820px){
  /* Phone: the card is already full width, give the chart the room. */
  .asset-chart{width:100%;max-width:none;height:215px;}
}

/* asset → TradingView chart link */
.asset-link{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:5px;transition:color .16s;}
.asset-link:hover{color:var(--gold);}
.asset-link .ext{font-size:9.5px;color:var(--text3);opacity:.7;transition:.16s;}
.asset-link:hover .ext{color:var(--gold);opacity:1;}

/* "↓ Setups" scroll cue in glance header */
.glance-jump{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:800;color:#0a0a12;background:linear-gradient(135deg,var(--gold),#e8a020);border:none;border-radius:22px;padding:9px 18px;text-decoration:none;cursor:pointer;transition:.18s;white-space:nowrap;font-family:'Inter';box-shadow:0 4px 18px rgba(245,158,11,.38),0 0 0 1px rgba(245,158,11,.25);letter-spacing:-.1px;}
.glance-jump:hover{background:linear-gradient(135deg,#fcd34d,var(--gold));transform:translateY(-2px);box-shadow:0 6px 24px rgba(245,158,11,.52),0 0 0 1px rgba(245,158,11,.4);}
.glance-jump:active{transform:scale(.96);}
.glance-jump .arrow{display:inline-block;animation:nudge 1.4s ease 4;}
@keyframes nudge{0%,100%{transform:translateY(0);}50%{transform:translateY(4px);}}

/* live forex strength widget container */
.tv-strength{background:rgba(15,20,32,0.5);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:10px;}
.tv-strength-head{font-size:10.5px;font-weight:800;color:var(--gold);letter-spacing:.7px;text-transform:uppercase;margin-bottom:11px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.tv-strength-head .live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);animation:livepulse 1.8s ease 4;}
.tv-strength-head .live-label{color:var(--green);text-transform:none;letter-spacing:.2px;font-size:10px;}
@keyframes livepulse{0%,100%{opacity:1;}50%{opacity:.45;}}

/* tighten margins on consecutive pill rows */
.bar{margin-bottom:10px;}
.crit{margin-bottom:10px;}
.movers{margin-bottom:10px;}
.heatmap{margin-bottom:10px;}
.cstrength{margin-bottom:10px;}

/* market regime pill (in glance header) */
.regime{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:20px;font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;margin-right:6px;}
.regime-on{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border);}
.regime-off{background:var(--red-dim);color:var(--red);border:1px solid var(--red-border);}
.regime-mix{background:rgba(153,102,204,0.12);color:var(--purple);border:1px solid var(--purple-border);}

/* currency strength meter */
.cstrength{background:rgba(15,20,32,0.5);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:14px;}
.cstrength-head{font-size:10.5px;font-weight:800;color:var(--gold);letter-spacing:.7px;text-transform:uppercase;margin-bottom:11px;display:flex;align-items:center;gap:8px;}
.cstrength-list{display:flex;flex-direction:column;gap:5px;}
.cstrength-row{display:grid;grid-template-columns:42px 1fr 48px;align-items:center;gap:10px;}
.cstrength-row .cur{font-weight:800;color:var(--text);font-family:'DM Mono';font-size:12.5px;}
.cstrength-row .bar-track{position:relative;height:10px;background:rgba(var(--wc),0.04);border-radius:5px;overflow:hidden;}
.cstrength-row .bar-track::before{content:'';position:absolute;top:0;bottom:0;left:50%;width:1px;background:rgba(var(--wc),0.18);z-index:1;}
.cstrength-row .bar-fill{position:absolute;top:0;bottom:0;border-radius:5px;}
.cstrength-row .val{font-family:'DM Mono';font-size:11px;font-weight:600;text-align:right;}

/* sector heatmap */
.heatmap{background:rgba(15,20,32,0.5);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:9px;}
.heatmap-head{font-size:10.5px;font-weight:800;color:var(--gold);letter-spacing:.7px;text-transform:uppercase;margin-bottom:9px;}
.heatmap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px;}
.heatmap-tile{padding:10px 12px;border-radius:9px;border:1px solid;display:flex;flex-direction:column;gap:2px;}
.heatmap-tile .s-name{font-size:11px;font-weight:700;color:var(--text);}
.heatmap-tile .s-stat{font-size:10.5px;font-family:'DM Mono';font-weight:500;}
.heatmap-tile .s-count{font-size:9px;color:var(--text3);margin-top:1px;letter-spacing:.2px;}

/* top movers strip */
.movers{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:9px;align-items:center;}
.movers-label{font-size:9.5px;font-weight:800;color:var(--text3);letter-spacing:.7px;text-transform:uppercase;}
.mover{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:20px;background:rgba(var(--wc),0.03);border:1px solid var(--border);font-size:11.5px;font-weight:700;color:var(--text);}
/* Mobile: lock the sector grid to 2 columns and let a lone final tile fill the
   row (no empty cell beside it), and put the movers label on its own line so the
   chips pack cleanly instead of orphaning one on a half-empty second line. */
@media(max-width:600px){
  .heatmap-grid{grid-template-columns:1fr 1fr;}
  .heatmap-tile:last-child:nth-child(odd){grid-column:1 / -1;}
  .movers-label{flex-basis:100%;}
}
.mover .m-chg{font-family:'DM Mono';font-weight:500;}
.mover .m-chg.up{color:var(--green);}
.mover .m-chg.down{color:var(--red);}

/* DeM 14 BAR (owner, 16 Oct 2026: "rethink the DeM Distribution bit ... sleeker, and placed better"). One slim stacked
   bar beside the board's filter chips, right above the lanes: where this week's setups sit on DeM 14, in the legend's own
   five colours, deepened into the surface. Each band is a button: tap filters the lanes to it, tap again clears. */
.bd-filt{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap;margin-bottom:12px;}
.bd-filt>.bar{margin-bottom:0;}
.demdist{flex:1 1 440px;min-width:0;display:flex;align-items:center;gap:12px;margin:0;}
.demdist:empty{display:none;}
.dd-lbl{font-size:9.5px;font-weight:800;color:var(--text3);letter-spacing:.7px;text-transform:uppercase;white-space:nowrap;line-height:1.2;}
.dd-lbl .dd-s{display:none;}
.dd-bar{flex:1;min-width:0;display:flex;gap:2px;height:38px;padding:2px;box-sizing:border-box;border-radius:10px;background:rgba(var(--wc),.03);border:1px solid var(--border);}
.dd-seg{--c:var(--blue);flex:var(--n,1) 1 0;min-width:28px;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 8px;border:0;border-radius:7px;
  background:rgba(var(--wc),.06);background:color-mix(in srgb,var(--c) 24%,transparent);box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--c) 80%,transparent);
  color:var(--text);font:600 11px/1 'Inter',sans-serif;white-space:nowrap;overflow:hidden;cursor:pointer;container-type:inline-size;
  transition:background .18s ease-out,opacity .18s ease-out,transform .15s ease-out,box-shadow .18s ease-out;}
.dd-seg b{font:600 12.5px/1 'DM Mono',monospace;font-variant-numeric:tabular-nums;}
.dd-seg span{color:var(--text2);overflow:hidden;text-overflow:ellipsis;}
@container (max-width:84px){ .dd-seg span{display:none;} }
.dd-seg:hover{background:color-mix(in srgb,var(--c) 38%,transparent);}
.dd-seg:focus-visible{outline:2px solid var(--gold);outline-offset:1px;}
.dd-seg:active{transform:scale(.97);}
.demdist.has-on .dd-seg:not(.on){opacity:.38;}
.demdist.has-on .dd-seg:not(.on):hover{opacity:.7;}
.dd-seg.on{background:color-mix(in srgb,var(--c) 46%,transparent);box-shadow:inset 0 0 0 1px var(--gold-border),inset 0 -2px 0 var(--c);}
.dd-seg.on span{color:var(--text);}
.dd-x{display:inline-flex;align-items:center;gap:5px;flex:none;height:30px;padding:0 10px;border-radius:15px;border:1px solid var(--gold-border);background:var(--gold-dim);color:var(--gold);font:600 11.5px 'Inter',sans-serif;cursor:pointer;transition:transform .15s ease-out;}
.dd-x:active{transform:scale(.97);}
.dd-x .svgi{width:12px;height:12px;}
.sw-item.dm-off,.sw-lane.dm-empty{display:none!important;}
@media(max-width:600px){
  .bd-filt{gap:8px;}
  .bd-filt>.bar{flex:1 1 100%;}
  .demdist{flex:1 1 100%;gap:8px;}
  .dd-lbl .dd-l{display:none;} .dd-lbl .dd-s{display:inline;}
  .dd-bar{height:34px;}
  .dd-seg{padding:0 4px;}
  .dd-x span{display:none;} .dd-x{padding:0;width:30px;justify-content:center;}
}

/* featured promo card (FunderPro etc.) */
.promo{background:linear-gradient(135deg,rgba(245,158,11,0.10),rgba(245,158,11,0.02));border:1px solid var(--gold-border);border-radius:16px;padding:16px 20px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.promo-left{display:flex;align-items:center;gap:13px;flex:1;min-width:230px;}
.promo-ico{width:40px;height:40px;border-radius:11px;background:var(--gold-dim);border:1px solid var(--gold-border);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.promo-title{font-size:14px;font-weight:800;color:var(--text);letter-spacing:-.2px;}
.promo-sub{font-size:11.5px;color:var(--text2);margin-top:3px;line-height:1.5;}
.promo-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.promo-code{display:flex;align-items:center;gap:7px;background:rgba(0,0,0,0.35);border:1px dashed var(--gold-border);border-radius:10px;padding:8px 14px;font-family:'DM Mono';font-weight:600;color:var(--gold);font-size:12.5px;cursor:pointer;transition:.16s;}
.promo-code:hover{background:rgba(0,0,0,0.5);border-style:solid;}
.promo-code.copied{color:var(--green);border-color:var(--green-border);border-style:solid;}
.promo-btn{background:linear-gradient(145deg,var(--gold),var(--gold-deep));color:#0a0a12;padding:8px 16px;border-radius:10px;font-weight:700;font-size:12.5px;text-decoration:none;transition:.16s;box-shadow:0 4px 14px rgba(245,158,11,.25);white-space:nowrap;font-family:'Inter';}
.promo-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(245,158,11,.38);}
.promo.promo-journal{background:linear-gradient(135deg,rgba(34,160,107,0.10),rgba(34,160,107,0.02));border-color:var(--green-border);}
.promo.promo-journal .promo-ico{background:rgba(34,160,107,0.14);border-color:var(--green-border);color:var(--green);}
.promo.promo-journal .promo-btn{background:linear-gradient(145deg,var(--green),#1a7f52);color:#eafff4;box-shadow:0 4px 14px rgba(34,160,107,.25);}
.promo.promo-journal .promo-btn:hover{box-shadow:0 6px 20px rgba(34,160,107,.38);}
.promo-member{margin-top:6px;color:var(--gold);font-weight:600;}
.promo-member.js-note{color:var(--text3);font-weight:500;}
.promo-badge{display:inline-flex;align-items:center;background:rgba(34,160,107,0.14);border:1px solid var(--green-border);color:var(--green);border-radius:10px;padding:8px 12px;font-family:'DM Mono';font-weight:600;font-size:12px;white-space:nowrap;}

/* journal callout (spans full grid row, centered) */
.risk.callout{grid-column:1 / -1;border-left-color:var(--green);background:linear-gradient(135deg,rgba(34,160,107,0.10),rgba(34,160,107,0.02));text-align:center;padding:16px 22px;}
.risk.callout h4{color:var(--green);font-size:14px;margin-bottom:9px;}
.risk.callout p{font-size:13.5px;max-width:600px;margin:0 auto;line-height:1.65;}
.risk.callout a{color:var(--green);font-weight:700;text-decoration:none;border-bottom:1px solid rgba(34,160,107,0.45);}
.risk.callout a:hover{border-bottom-color:var(--green);}

/* prop firms (always open, no toggle) */
.propfirms{margin-top:14px;border-radius:18px;overflow:hidden;}
.propfirms-head{padding:16px 22px 12px;color:var(--text);font-size:14px;font-weight:800;letter-spacing:-.2px;display:flex;align-items:center;gap:7px;}
.propfirms-body{padding:0 22px 22px;}
.propfirms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:9px;}
.propfirm{display:flex;align-items:center;gap:11px;background:rgba(17,21,34,.6);border:1px solid var(--border);border-radius:11px;padding:11px 13px;text-decoration:none;color:var(--text);transition:.16s;}
.propfirm:hover{border-color:var(--gold-border);transform:translateY(-2px);background:rgba(17,21,34,.85);}
.propfirm-ico{width:32px;height:32px;border-radius:8px;background:rgba(245,158,11,.08);border:1px solid var(--gold-border);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.propfirm-info{flex:1;min-width:0;}
.propfirm-name{font-size:12px;font-weight:700;color:var(--text);}
.propfirm-perk{font-size:10.5px;font-family:'DM Mono';color:var(--gold);margin-top:2px;}

/* ===== APP ===== */
#app{display:none;position:relative;z-index:1;max-width:1280px;margin:0 auto;padding:clamp(14px,2.5vw,26px) clamp(12px,2.5vw,26px) 60px;}

/* header */
.topbar{border-radius:18px;padding:16px clamp(16px,2.5vw,26px);display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px;position:relative;overflow:hidden;}
/* Installed app: the phone's status bar sits over a translucent top, so the
   header needs the safe-area inset above it; on a desktop window the inset is 0
   and the extra 6px simply gives the header room to breathe. */
@media (display-mode: standalone), (display-mode: minimal-ui), (display-mode: window-controls-overlay){
  #app{padding-top:calc(clamp(14px,2.5vw,26px) + env(safe-area-inset-top,0px) + 6px);}
  #login{padding-top:calc(env(safe-area-inset-top,0px) + 6px);}
}
.topbar::before{content:'';position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--gold-border),transparent);}
.tb-left{display:flex;align-items:center;gap:11px;}
.tb-left .mark{width:36px;height:36px;font-size:18px;}
.tb-name{font-family:var(--wordmark);font-size:17px;font-weight:800;color:var(--text);letter-spacing:.2px;line-height:1.1;}
.tb-name em{font-style:normal;color:var(--gold);}
.tb-name small{display:block;font-size:10.5px;font-weight:500;color:var(--text3);letter-spacing:.2px;margin-top:2px;}
.tb-right{display:flex;align-items:center;gap:10px;}
.upd-mon-s{display:none;}
.upd-pill{font-size:11.5px;color:var(--gold);background:var(--gold-dim);border:1px solid var(--gold-border);border-radius:20px;padding:6px 13px;font-weight:600;white-space:nowrap;}
.btn-ghost{background:rgba(var(--wc),.03);border:1px solid var(--glass-border);color:var(--text2);border-radius:11px;padding:9px 15px;font-size:12px;font-weight:600;cursor:pointer;font-family:'Inter';transition:.2s;white-space:nowrap;}
.btn-ghost:hover{border-color:var(--gold-border);color:var(--gold);background:var(--gold-dim);}

/* tabs */
.tabs{display:flex;width:100%;box-sizing:border-box;align-self:stretch;gap:9px;margin-bottom:16px;overflow-x:auto;padding:6px;border-radius:16px;border:1px solid rgba(var(--wc),.08);box-shadow:0 6px 22px rgba(0,0,0,.28);scrollbar-width:none;position:sticky;top:0;z-index:40;background:rgba(10,14,22,.94);backdrop-filter:blur(12px) saturate(1.3);-webkit-backdrop-filter:blur(12px) saturate(1.3);}
.tabs::-webkit-scrollbar{display:none;}
.tab{flex:1 1 0;min-width:0;justify-content:center;border-radius:11px;padding:11px 11px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .18s,box-shadow .18s,border-color .18s,transform .18s;white-space:nowrap;background:rgba(var(--wc),.03);border:1px solid rgba(var(--wc),.10);box-shadow:none;}  /* .glass would re-add its card shadow */
/* Rogo-grade chrome: a row of seven glowing cards is noise. Rest state is a
   flat hairline; the ACTIVE tab is the only one allowed a glow. */
.tab:hover{background:rgba(var(--wc),.07);border-color:var(--gold-border);transform:translateY(-1px);}
.tab.on{background:var(--gold);border-color:var(--gold);box-shadow:0 4px 24px rgba(245,158,11,.5),0 0 0 1px rgba(245,158,11,.4);}
.tab-ico{font-size:17px;line-height:1;}
.tab-text{display:flex;flex-direction:column;gap:1px;min-width:0;}
/* how-to onboarding (collapsible) */
.howto{border-radius:16px;margin-bottom:14px;}
.howto summary{list-style:none;cursor:pointer;padding:13px 18px;font-size:13px;font-weight:800;color:var(--gold);display:flex;align-items:center;letter-spacing:-.1px;}
.howto summary::-webkit-details-marker{display:none;}
.howto summary::after{content:'▾';margin-left:auto;color:var(--text3);transition:transform .2s;}
.howto[open] summary::after{transform:rotate(180deg);}
.howto-body{padding:0 18px 18px;}
.howto-states{border-radius:10px;margin-top:4px;}
.hs-tag{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;text-align:center;width:88px;font-size:9.5px;font-weight:800;letter-spacing:.03em;line-height:1.3;text-transform:uppercase;padding:4px 6px;border-radius:6px;margin-top:1px;box-sizing:border-box;}
/* EXPLAINER SYSTEM (13 Oct 2026, owner: "the message is good, it's correct, I just want the app to be super sleek").
   ~20 hand-made note blocks (inline-styled paragraphs, gold boxes copied rgba by rgba) become one kit, used on every tab:
   .xp card > .xp-k gold kicker, .xp-h one-line headline, .xp-lead one muted paragraph, .xp-rules grid of .xp-rule tiles
   (mono gold .xp-n number OR a stroke icon, bold 2-4 word title, one muted line), .xp-list two-column term + line rows,
   .xp-chips legend chips, .xp-call the one gold callout, .xp-foot a single muted line with an info icon, details.xp-more
   for the secondary "good to know" text. details.xp-m is the phone fold: open on wider screens (xpSync), shut at 600px
   and under, so a long block reads as its headline + More. .src is the one style for source and disclaimer lines.
   Built on --wc / --text* / --gold only, so the light theme inks it with no overrides of its own. */
.xp{border:1px solid var(--border);background:rgba(var(--wc),.022);border-radius:14px;padding:15px 17px;margin-bottom:14px;}
.xp-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px 14px;flex-wrap:wrap;margin-bottom:7px;}
.xp-top .xp-k{margin-bottom:0;}
.xp-k{display:block;font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 7px;line-height:1.5;}
.xp-k .svgi{width:14px;height:14px;vertical-align:-2px;margin-right:7px;}
.xp-tag{display:inline-block;margin-left:6px;vertical-align:1px;line-height:1.4;font-size:9.5px;font-weight:800;letter-spacing:.08em;color:var(--text2);border:1px solid var(--border2);border-radius:20px;padding:2px 8px;}
.xp-h{font-size:15px;font-weight:800;color:var(--text);letter-spacing:-.25px;line-height:1.35;margin:0 0 5px;}
.xp-lead{font-size:12.5px;color:var(--text2);line-height:1.6;margin:0 0 12px;max-width:820px;}
.xp-lead b{color:var(--text);font-weight:700;}
.xp-sec{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--text3);margin:16px 0 4px;}
.xp-sec+.xp-lead{margin-bottom:9px;}
.xp-rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:8px;margin:0 0 4px;}
.xp-rules.c3{grid-template-columns:repeat(3,1fr);}
.xp-rule{display:flex;gap:10px;align-items:flex-start;background:rgba(var(--wc),.03);border:1px solid var(--border);border-radius:10px;padding:10px 12px;}
.xp-n{font-family:'DM Mono',monospace;font-size:12px;font-weight:500;color:var(--gold);line-height:1.5;min-width:14px;flex:none;}
.xp-rule>.svgi{width:16px;height:16px;color:var(--gold);flex:none;margin-top:1px;}
.xp-rule b{display:block;font-size:12.5px;font-weight:700;color:var(--text);line-height:1.4;margin-bottom:2px;letter-spacing:-.1px;}
.xp-rule span{display:block;font-size:11.5px;color:var(--text3);line-height:1.5;}
.xp-rule em,.xp-lead em,.xp-more-b em{font-style:normal;color:var(--text2);}
.xp-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 22px;margin:2px 0 4px;}
.xp-li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--border);font-size:11.5px;color:var(--text3);line-height:1.5;}
.xp-li:nth-child(-n+2){border-top:0;}
.xp-li>.svgi{width:15px;height:15px;color:var(--gold);flex:none;margin-top:1px;}
.xp-li b{display:block;font-size:12.5px;font-weight:700;color:var(--text);margin-bottom:1px;}
.xp-li strong{color:var(--text2);font-weight:700;}
.xp-li .hs-tag{margin-top:0;}
.xp-dot{width:8px;height:8px;border-radius:50%;flex:none;margin-top:6px;}
.xp-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 4px;}
.xp-chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text2);padding:4px 10px;border:1px solid var(--border);border-radius:20px;background:rgba(var(--wc),.03);line-height:1.3;}
.xp-chip i{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none;}
.xp-chip .svgi{width:13px;height:13px;color:var(--gold);flex:none;}
.xp-chips-k{font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);align-self:center;margin-right:2px;}
.xp-call{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.6;color:var(--text2);background:rgba(245,158,11,.055);border:1px solid var(--gold-border);border-radius:10px;padding:10px 13px;margin-top:10px;}
.xp-call>.svgi{width:15px;height:15px;color:var(--gold);flex:none;margin-top:2px;}
.xp-call b{color:var(--text);}
.xp-foot{display:flex;gap:8px;align-items:flex-start;font-size:11.5px;color:var(--text3);line-height:1.55;margin-top:11px;}
.xp-foot>.svgi{width:14px;height:14px;flex:none;margin-top:1px;color:var(--text3);}
.xp-foot b{color:var(--text2);font-weight:700;}
.xp-more{margin-top:11px;border-top:1px solid var(--border);padding-top:9px;}
.xp-more>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--text2);padding:2px 0;}
.xp-more>summary::-webkit-details-marker{display:none;}
.xp-more>summary:hover{color:var(--text);}
.xp-more>summary .svgi{width:13px;height:13px;color:var(--gold);transition:transform .2s ease-out;}
.xp-more[open]>summary .svgi{transform:rotate(180deg);}
.xp-more-b{font-size:12px;color:var(--text3);line-height:1.6;margin-top:8px;max-width:860px;}
.xp-more-b p{margin:0 0 8px;} .xp-more-b p:last-child{margin-bottom:0;}
.xp-more-b b{color:var(--text2);}
/* the phone fold: a plain wrapper on wider screens (summary hidden, opened by xpSync), a More toggle at 600px and under */
details.xp-m{margin:0;border:0;padding:0;}
details.xp-m>summary{display:none;}
@media(max-width:600px){
  details.xp-m{margin-top:6px;border-top:1px solid var(--border);padding-top:9px;}
  details.xp-m>summary{display:inline-flex;}
  details.xp-m[open]>summary{margin-bottom:6px;}
  .xp{padding:13px 14px;}
  .xp-rules,.xp-rules.c3,.xp-list{grid-template-columns:1fr;}
  .xp-list .xp-li:nth-child(2){border-top:1px solid var(--border);}
}
.src{display:flex;gap:7px;align-items:flex-start;font-size:11px;color:var(--text3);line-height:1.55;margin-top:14px;}
.src::before{content:'';flex:none;width:12px;height:1px;background:var(--border2);margin-top:8px;}
@media(max-width:480px){.hs-tag{width:76px;font-size:9px;}}
.tab-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;color:rgba(var(--wc),.7);letter-spacing:-.1px;line-height:1.2;}
.tab-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;font-weight:500;color:rgba(var(--wc),.38);letter-spacing:-.05px;line-height:1.2;}
/* Seven tabs: below this the sub-labels cannot fit without clipping, so drop
   them and let the names have the room instead. */
@media(min-width:821px) and (max-width:1150px){
  .tab-sub{display:none;}
  .tab{padding:12px 8px;}
  .tab-lbl{font-size:13px;}
}
.tab.on .tab-lbl{color:#0c1018;font-weight:800;}
.tab.on .tab-sub{color:rgba(0,0,0,.45);}

/* ===== native-app feel: kill tap flash, momentum scroll, tactile presses ===== */
html{-webkit-text-size-adjust:100%;}
body{-webkit-tap-highlight-color:transparent;-webkit-overflow-scrolling:touch;}
.tab,.fbtn,.btn-gold,.btn-ghost,.glance-jump,.mkt-row,.mcard,.wins .win,.regime,.upd-pill,[onclick]{
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
}
.tab,.tabs,.fbtn,.btn-ghost,.btn-gold,.glance-jump,.upd-pill,.tb-name,.mkt-struct,.mkt-sig,.sig,.ctx,.ema,.dem,.regime{
  -webkit-user-select:none;user-select:none;
}
/* The Builder score pill, its own rule. It must never share a selector list
   with layout-bearing elements again. */
.mkt-score{display:inline-block;font-family:'DM Mono',monospace;font-size:11.5px;font-weight:500;padding:3px 9px;border-radius:20px;border:1px solid transparent;white-space:nowrap;cursor:help;}
.mkt-score.hi{color:#22a06b;background:rgba(34,160,107,.13);border-color:rgba(34,160,107,.32);}
.mkt-score.mid{color:var(--gold);background:rgba(245,158,11,.11);border-color:rgba(245,158,11,.28);}
.mkt-score.lo{color:var(--text3);background:rgba(var(--wc),.05);border-color:var(--border);}
.mkt-score.na{color:var(--text3);background:none;border:none;}
/* Phone: the Score column is hidden for width, so it rides in the Asset
   cell instead, visible without rotating, and the sort bar below drives it. */
.mkt-idxrow{margin-bottom:8px;}
.mkt-idxlabel{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-right:4px;align-self:center;}
.mkt-cur{display:inline-block;margin-left:5px;font-size:9px;font-weight:700;letter-spacing:.03em;color:var(--text3);vertical-align:middle;}
.mkt-asof{font-size:10.5px;color:var(--text3);margin:0 0 10px;}
.mkt-score-m{display:none;}
/* Symbol and score share ONE flex line. As inline siblings the pill wrapped
   under any longer ticker (QCOM, 4506.T, AJG), which knocked those rows taller
   than the rest and broke the column alignment down the table. */
.mkt-symline{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0;}
.mkt-symline .mkt-sym{min-width:0;}
@media(max-width:820px){
  .mkt-score-m{display:inline-block;vertical-align:middle;flex:0 0 auto;}
  .mkt-score-m .mkt-score{font-size:10px;padding:1px 6px;}
}
.mkt-sortbar{display:none;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 10px;}
.msb-label{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-right:2px;}
.msb-btn{background:rgba(var(--wc),.05);border:1px solid var(--border);color:var(--text2);border-radius:9px;padding:7px 12px;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;transition:.15s;}
.msb-btn.on{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.35);color:var(--gold);}
.msb-btn:after{content:'';}
.msb-btn.on:after{content:' \2193';font-size:10px;}
.msb-btn.on.asc:after{content:' \2191';}
@media(max-width:820px){ .mkt-sortbar{display:flex;} }
.mkt-legend{font-size:11.5px;line-height:1.65;color:var(--text3);padding:12px 14px !important;border-top:1px solid var(--glass-border);background:rgba(var(--wc),.02);white-space:normal !important;}
.mkt-legend b{color:var(--text2);}
.mkt-legend .svgi{width:13px;height:13px;vertical-align:-2px;color:var(--text3);}
.mkt-legend a{color:var(--gold);font-weight:700;text-decoration:none;white-space:nowrap;}
.mkt-legend a:hover{text-decoration:underline;text-underline-offset:2px;}
/* score dots (13 Oct 2026): one per mktScore check, filled = passed, hollow = failed, in the score's own colour */
.mkt-dots{display:inline-flex;gap:3px;margin-left:7px;vertical-align:1px;}
.mkt-dots i{width:5px;height:5px;border-radius:50%;border:1px solid currentColor;opacity:.75;box-sizing:border-box;}
.mkt-dots i.on{background:currentColor;opacity:1;}
/* Sort affordance: always visible, so a member knows the column is clickable
   before they click it. */
table.mkt th[data-sort]{position:relative;padding-right:22px !important;}
table.mkt th[data-sort]:after{
  content:'\2195';                 /* up-down arrow = "sortable" */
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  font-size:10px;line-height:1;opacity:.32;transition:opacity .15s,color .15s;
}
table.mkt th[data-sort]:hover:after{opacity:.8;}
table.mkt th[data-sort].sorted:after{content:'\25BC';opacity:1;color:var(--gold);}
table.mkt th[data-sort].sorted.asc:after{content:'\25B2';}
@media(max-width:820px){
  /* Drop the score on small screens, it pushed the table past the viewport.
     The sort control stays available on desktop where the column lives. */
  table.mkt th:nth-child(8),table.mkt td:nth-child(8){display:none;}
  .mkt-legend{font-size:11px;}
}
.mkt-struct,.mkt-sig,.sig,.ctx,.ema,.dem,.regime{
  -webkit-user-select:none;user-select:none;
}
.btn-gold,.btn-ghost,.fbtn,.glance-jump{transition:transform .09s ease,background .18s,border-color .18s,color .18s,box-shadow .18s;}
.btn-gold:active,.glance-jump:active,.fbtn:active,.btn-ghost:active{transform:scale(.96);}
.mcard,.mkt-row{transition:transform .09s ease,background .12s;}
.mkt-row:active{background:rgba(var(--wc),0.06);}
.mcard:active{transform:scale(.99);}

/* refined themed scrollbars, replaces the clunky default for a premium desktop feel */
*{scrollbar-width:thin;scrollbar-color:rgba(120,137,168,0.40) transparent;}
::-webkit-scrollbar{width:12px;height:12px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:rgba(120,137,168,0.38);border-radius:9px;border:3px solid transparent;background-clip:padding-box;transition:background .2s;}
::-webkit-scrollbar-thumb:hover{background:rgba(245,158,11,0.55);background-clip:padding-box;}
::-webkit-scrollbar-corner{background:transparent;}

/* ===== Live Trigger Watch ===== */
.tw{border-radius:14px;padding:12px 14px;margin-bottom:14px;}
.tw-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.tw-title{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:800;color:var(--text);letter-spacing:-.1px;}
.tw-legend-link{background:none;border:none;color:var(--gold);font-size:11px;font-weight:600;cursor:pointer;padding:0;margin-left:2px;display:inline-flex;align-items:center;gap:4px;opacity:.82;-webkit-tap-highlight-color:transparent;letter-spacing:0;}
.tw-legend-link .svgi{width:13px;height:13px;}
.tw-legend-link:hover{opacity:1;text-decoration:underline;text-underline-offset:2px;}
.hs-flash{animation:hsFlash 1.5s ease-out;}
/* the badge guide as its own sheet, on tabs where the Home explainer is not shown (17 Oct 2026) */
.bg-sheet{position:fixed;inset:0;z-index:1200;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(4,5,10,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.bg-sheet.on{display:flex;animation:bgIn .2s ease-out}
@keyframes bgIn{from{opacity:0}to{opacity:1}}
.bg-card{width:100%;max-width:520px;max-height:min(80vh,640px);overflow:auto;border-radius:18px;border:1px solid rgba(var(--wc),.09);padding:16px 18px 18px;box-shadow:0 24px 70px rgba(0,0,0,.5)}
.bg-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.bg-top b{font-size:16px;font-weight:800;letter-spacing:-.2px;color:var(--text)}
.bg-x{width:34px;height:34px;border-radius:10px;border:1px solid rgba(var(--wc),.1);background:rgba(var(--wc),.04);color:var(--text2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease-out}
.bg-x:active{transform:scale(.97)}
.bg-body .xp-li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid rgba(var(--wc),.06);font-size:13px;line-height:1.5;color:var(--text2)}
.bg-body .xp-li:first-child{border-top:0}
.bg-body .hs-tag{flex:none}
html.bg-lock{overflow:hidden}
@keyframes hsFlash{0%,100%{box-shadow:none;}22%{box-shadow:0 0 0 2px var(--gold-border);}}
.tw-live{display:inline-flex;align-items:center;gap:5px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--green);}
.tw-dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:twpulse 1.8s 4;}
@keyframes twpulse{0%{box-shadow:0 0 0 0 rgba(34,160,107,.5);}70%{box-shadow:0 0 0 6px rgba(34,160,107,0);}100%{box-shadow:0 0 0 0 rgba(34,160,107,0);}}
.tw-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;}
@media(max-width:680px){.tw-grid{grid-template-columns:1fr;}}
.tw-row{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;background:rgba(var(--wc),.022);border:1px solid var(--border);}
.tw-row.hot{background:var(--gold-dim);border-color:var(--gold-border);animation:twPulse 2s ease-in-out 4;}
@keyframes twPulse{0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,0);}50%{box-shadow:0 0 0 3px rgba(245,158,11,.16),0 0 18px rgba(245,158,11,.14);}}
.tw-row.imminent{border-color:var(--orange);background:rgba(227,83,54,.07);}
.tw-row.win{background:var(--green-dim);border-color:var(--green-border);}
@media(prefers-reduced-motion:reduce){.tw-row.hot{animation:none;}}
.tw-row.out{background:var(--red-dim);border-color:var(--red-border);}
.tw-sym{font-weight:800;color:var(--text);font-size:12px;min-width:58px;flex-shrink:0;}
.tw-sym small{display:block;font-size:9.5px;color:var(--text3);font-weight:600;margin-top:1px;}
.tw-goto{display:block;font-size:9px;color:rgba(245,158,11,.65);text-decoration:none;font-weight:700;letter-spacing:.4px;margin-top:4px;transition:.15s;cursor:pointer;}
.tw-goto:hover{color:var(--gold);}
/* alert control (Entry/TP/SL toggle chips), on trigger rows AND setup cards */
.al-ctl{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px;}
.al-lead{font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;}
.al-chip{display:inline-flex;align-items:center;gap:3px;background:rgba(var(--wc),.05);border:1px solid var(--border);color:var(--text2);border-radius:20px;padding:5px 11px;font-size:11px;font-weight:700;cursor:pointer;font-family:'Inter',sans-serif;transition:.14s;-webkit-tap-highlight-color:transparent;}
.al-chip:hover{border-color:var(--gold-border);color:var(--text);transform:translateY(-1px);}
.al-chip.on{background:var(--gold);color:#0a0a12;border-color:var(--gold);box-shadow:0 2px 10px rgba(245,158,11,.32);}
.al-chip.on::before{content:'✓ ';font-weight:900;}
.al-chip.on.via{background:var(--gold-dim);color:var(--gold);border-color:var(--gold-border);box-shadow:none;}
.al-chip.muted{border-style:dashed;opacity:.62;}
/* a trade's bell state in words, and the Follow all switch in each board's title row (15 Oct 2026) */
.al-st{display:none;align-items:center;gap:4px;font-size:10.5px;font-weight:700;letter-spacing:.02em;white-space:nowrap;}
.al-st .svgi{width:13px;height:13px;}
.al-st.is-muted{display:inline-flex;color:var(--text2);border:1px dashed var(--border);border-radius:20px;padding:4px 9px;}
.al-st.is-via{display:inline-flex;color:var(--gold);opacity:.85;}
.bf-row{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:auto;}
.bf-sw{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:6px 8px 6px 11px;border-radius:20px;border:1px solid var(--border);background:rgba(var(--wc),.04);color:var(--text2);font:700 12px/1 'Inter',sans-serif;cursor:pointer;transition:background .18s ease-out,border-color .18s ease-out,color .18s ease-out;-webkit-tap-highlight-color:transparent;}
.bf-sw .svgi{width:15px;height:15px;flex:0 0 auto;}
.bf-sw i{position:relative;width:28px;height:16px;border-radius:10px;background:rgba(var(--wc),.12);flex:0 0 auto;transition:background .18s ease-out;}
.bf-sw i::after{content:'';position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--text2);transition:transform .18s ease-out,background .18s ease-out;}
.bf-sw:hover{border-color:var(--gold-border);color:var(--text);}
.bf-sw.on{color:var(--gold);border-color:var(--gold-border);background:var(--gold-dim);}
.bf-sw.on i{background:var(--gold);}
.bf-sw.on i::after{transform:translateX(12px);background:#0a0a12;}
.bf-sw:active{transform:scale(.97);}
.bf-sw:disabled{opacity:.6;cursor:wait;}
/* PHONE (15 Oct 2026): Swing's two switches sit side by side in one row, 44px tall, and wrap only below about 340px wide */
@media(max-width:600px){ .bf-row{display:flex;margin-left:0;width:100%;} .bf-sw{flex:1 1 auto;justify-content:space-between;min-height:44px;gap:5px;padding:6px 6px 6px 8px;font-size:11.5px;white-space:nowrap;} .bf-sw:only-child{flex:0 0 auto;} .bf-sw .svgi{width:14px;height:14px;} .bf-sw span{flex:1 1 auto;text-align:left;} .bf-sw i{width:26px;} .bf-sw.on i::after{transform:translateX(10px);} .bf-row .bf-l{display:none;} .bf-row .bf-s{display:inline;} }
.bf-s{display:none;}
.al-chip:not(.on){opacity:.82;}
/* Entry, TP and SL read as one matched set: same width whatever the word, and whether or not the tick is showing (18 Sep 2026) */
.al-ctl .al-chip{min-width:74px;justify-content:center;}
/* toast feedback when an alert is toggled or a test is sent */
.al-toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%) translateY(16px);z-index:400;background:#16161f;border:1px solid var(--gold-border);color:var(--text);font-size:13px;font-weight:700;padding:11px 18px;border-radius:12px;box-shadow:0 10px 34px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:88vw;text-align:center;}
.al-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.al-toast.err{border-color:var(--red-border);}
.al-toast.show.lim{pointer-events:auto;}
.al-toast a{color:var(--gold);text-decoration:underline;text-underline-offset:2px;white-space:nowrap;}
.ac-test{margin-left:auto;background:var(--gold-dim);border-color:var(--gold-border);color:var(--gold);}
.ac-test:hover{background:var(--gold);color:#0a0a12;border-color:var(--gold);}
/* ===== My Alerts page ===== */
.ap-head{margin-bottom:16px;}
.ap-title{font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.3px;}
.ap-sub{font-size:13px;color:var(--text3);margin-top:4px;line-height:1.5;}
.ap-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin-bottom:14px;}
.ap-card-h{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--gold);margin-bottom:12px;display:flex;align-items:center;gap:9px;}
.ap-count{background:var(--gold-dim);color:var(--gold);border:1px solid var(--gold-border);border-radius:20px;padding:1px 9px;font-size:11px;}
.ap-email{font-size:13px;color:var(--text2);}
.ap-email b{color:var(--text);}
.ap-empty{font-size:12.5px;color:var(--text3);line-height:1.6;}
.ap-empty b{color:var(--text2);}
.ap-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--border);}
.ap-row:first-of-type{border-top:none;padding-top:2px;}
.ap-row-main{flex:1;min-width:0;}
.ap-row-t{font-size:14px;font-weight:800;color:var(--text);}
.ap-row-g{font-size:11px;font-weight:600;color:var(--text3);margin-left:5px;}
.ap-row-d{font-size:12px;color:var(--text2);margin-top:3px;font-family:'DM Mono';}
.ap-chips{margin-top:8px;}
.ap-del{flex-shrink:0;width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:rgba(var(--wc),.03);color:var(--text3);font-size:13px;cursor:pointer;transition:.15s;}
.ap-del:hover{color:var(--text);background:#c93b3b;border-color:#c93b3b;}
.ap-hint{font-size:12.5px;color:var(--text3);line-height:1.6;text-align:center;padding:10px 16px;}
.ap-ways{display:grid;grid-template-columns:repeat(5,1fr);gap:4px 22px;}
.ap-way{display:flex;gap:10px;align-items:flex-start;padding:6px 0;}
.ap-way .svgi{flex:none;width:16px;height:16px;margin-top:2px;color:var(--gold);}
.ap-way b{display:block;font-size:13px;color:var(--text);margin-bottom:2px;}
.ap-way span{font-size:12.5px;color:var(--text3);line-height:1.5;}
.ap-start-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:12px;color:var(--text3);}
@media(max-width:1099px){.ap-ways{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.ap-ways{grid-template-columns:1fr;gap:0;}.ap-way{padding:10px 0;border-top:1px solid var(--border);}.ap-way:first-child{border-top:0;padding-top:2px;}}
.tw-alertrow{margin-top:8px;}
.lv-badge{display:inline-flex;align-items:center;font-size:9.5px;font-weight:800;padding:3px 8px;border-radius:6px;white-space:nowrap;}
.lv-trig{background:var(--gold-dim);color:var(--gold);border:1px solid var(--gold-border);animation:twPulse 2s ease-in-out 4;}
.lv-act{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border);}
.lv-win{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border);}
.lv-out{background:var(--red-dim);color:var(--red);border:1px solid var(--red-border);}
/* delivery-channel bar (email / desktop push) */
.alert-channels{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:11px;border-top:1px solid var(--border);}
.ac-lead{font-size:10.5px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;}
@media(max-width:600px){
  .alert-channels{gap:6px;}
  .ac-lead{flex:0 0 100%;margin-bottom:1px;}
  .ac-test{margin-left:0;}
  .alert-channels .ac-tog{flex:1 1 0;min-width:0;justify-content:center;padding-left:8px;padding-right:8px;}
}
.ac-tog{background:rgba(var(--wc),.05);border:1px solid var(--border);color:var(--text2);border-radius:20px;padding:5px 13px;font-size:11.5px;font-weight:700;cursor:pointer;font-family:'Inter',sans-serif;transition:.14s;}
.ac-tog:hover{border-color:var(--gold-border);color:var(--text);}
.ac-tog.on{background:var(--green-dim);border-color:var(--green-border);color:var(--green);}
.ac-tog.blocked{background:rgba(201,59,59,.10);border-color:rgba(201,59,59,.32);color:var(--red);}
.ac-tog.blocked:hover{border-color:rgba(201,59,59,.5);color:var(--red);}
/* portfolio alert chips (buy zone + scale-out targets) in the expanded row */
.pf-alert{margin-top:14px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;}
.pf-chips{display:flex;flex-wrap:wrap;gap:6px;}
.al-chip.fired{border-style:dashed;}
.al-chip.on.fired{background:rgba(var(--wc),.05);color:var(--text2);border-color:rgba(34,160,107,.45);box-shadow:none;}
.al-chip.on.fired::after{content:' ✓ sent';color:var(--green);font-weight:800;}
.tw-chips .al-ctl{margin-top:7px;}
.tw-chips .al-chip{padding:3px 9px;font-size:10.5px;}
.pf-buyzone.on{background:var(--green)!important;color:#04120a!important;border-color:var(--green)!important;box-shadow:0 2px 10px rgba(34,160,107,.3)!important;}
.tw-mid{flex:1;min-width:0;}
.tw-line{font-size:12px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tw-line .tw-px{font-family:'DM Mono';color:var(--text);}
/* compact proximity readout: a thin bar (fuller = closer) + one clean line */
.tw-dist{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap;}
.tw-prog{flex:0 0 52px;height:4px;border-radius:3px;background:rgba(var(--wc),.09);overflow:hidden;}
.tw-prog i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,rgba(245,158,11,.4),var(--gold));}
.tw-away{font-size:11px;font-weight:800;color:var(--text2);letter-spacing:-.1px;}
.tw-away.close{color:var(--gold);}
.tw-away-sub{font-size:10px;color:var(--text3);font-family:'DM Mono';}
.tw-note{font-size:11px;color:var(--text3);margin-top:4px;line-height:1.4;}
/* right column: quick trigger-alert bell stacked above the status badge */
.tw-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;}
.tw-stale{color:var(--text3);font-weight:500;font-size:.85em;}
.tw-bell{background:none;border:1px solid var(--border);border-radius:8px;width:32px;height:26px;cursor:pointer;font-size:13px;line-height:1;padding:0;opacity:.5;filter:grayscale(1);transition:.15s;-webkit-tap-highlight-color:transparent;}
.tw-bell:hover{opacity:.92;filter:grayscale(.3);border-color:var(--gold-border);transform:translateY(-1px);}
.tw-bell.on{opacity:1;filter:none;background:var(--gold-dim);border-color:var(--gold-border);}
.tw-badge{font-size:9px;font-weight:700;padding:3px 7px;border-radius:6px;white-space:nowrap;flex-shrink:0;}
.b-pending{background:var(--blue-dim);color:#7c9cea;border:1px solid var(--blue-border);}   /* waiting reads blue, in trade gold, done green or red */
.b-trig{background:var(--gold-dim);color:var(--gold);border:1px solid var(--gold-border);}
/* Broke the level on a gap, so no entry was available, a warning, not a fill. */
.b-gap{background:rgba(227,83,54,.13);color:#e35336;border:1px solid rgba(227,83,54,.38);}
.b-wait{background:rgba(245,158,11,.10);color:var(--gold);border:1px dashed var(--gold-border);}
/* extended / managing notes on Swing + Forex rows use the shared .xp-call (13 Oct 2026): the headline sentence on its
   own line, the rest one muted paragraph. Same words as before. */
.ext-note .xn-h{display:block;margin-bottom:3px;font-size:12.5px;}
.ext-note .xn-b{display:block;color:var(--text3);}
.ext-note .xn-b b{color:var(--text2);}
/* Installed-app states: offline bar and the new-version nudge. Both are quiet,
   fixed to the bottom above the safe area, and never cover the tab bar for long. */
.rbt-net{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));transform:translateX(-50%) translateY(20px);opacity:0;pointer-events:none;z-index:9500;display:flex;align-items:center;gap:10px;width:calc(100vw - 24px);max-width:560px;box-sizing:border-box;padding:10px 14px;border-radius:12px;background:rgba(12,16,26,.92);border:1px solid rgba(255,255,255,.10);box-shadow:0 12px 40px rgba(0,0,0,.45);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:12.5px;line-height:1.45;color:var(--text);transition:opacity .22s ease-out,transform .22s ease-out}
.rbt-net.on{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
.rbt-net .svgi{width:16px;height:16px;flex-shrink:0;color:var(--gold)}
.rbt-net b{color:var(--text)}
.rbt-net span{color:var(--text2)}
.rbt-net button{margin-left:6px;flex-shrink:0;border:1px solid var(--gold-border);background:rgba(245,158,11,.12);color:var(--gold);font:inherit;font-weight:700;font-size:12px;padding:6px 11px;border-radius:9px;cursor:pointer}
.rbt-net button:active{transform:scale(.97)}
.rbt-net.off .svgi{color:var(--orange)}
@media (prefers-reduced-motion:reduce){.rbt-net{transition:none}}
.rbt-net.ios .ios-share{display:inline-flex;vertical-align:-3px;margin:0 2px;padding:1px 3px;border-radius:5px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06)}
.rbt-net.ios .ios-share .svgi{width:13px;height:13px;color:var(--text)}
.rbt-net.ios>.svgi{color:var(--gold)}
/* Top-bar action buttons (10 Sep 2026): one family. Icon only, 36px, glass,
   gold on hover; the theme toggle joins it. The label is for screen readers. */
.tb-right .tb-ico,.tb-right .theme-tog{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(var(--wc),.04);border:1px solid var(--glass-border);color:var(--text2);cursor:pointer;transition:border-color .18s,color .18s,background .18s,transform .18s;flex:0 0 auto;-webkit-tap-highlight-color:transparent}
.tb-ico .svgi,.theme-tog .svgi{width:17px;height:17px;stroke-width:2}
.tb-ico:hover,.theme-tog:hover{border-color:var(--gold-border);color:var(--gold);background:var(--gold-dim);transform:translateY(-1px)}
.tb-ico:active,.theme-tog:active{transform:scale(.96)}
.tb-ico.spin .svgi{animation:tbspin .8s linear infinite}
@keyframes tbspin{to{transform:rotate(360deg)}}
.tb-ico .pwa-lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#lock{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:10px}
/* TOUCH (11 Sep 2026): no hover, no tooltip, so every icon button carries its
   word on phones and tablets. Desktop with a mouse keeps the compact icons. */
.tb-lbl{display:none;font-size:10.5px;font-weight:700;letter-spacing:.2px;white-space:nowrap}
@media (hover:none),(max-width:820px){
  .tb-right .tb-ico,.tb-right .theme-tog{width:auto;padding:0 11px;gap:6px}
  .tb-lbl{display:inline}
}

.tb-right{gap:8px}
/* Under 820 px (phones and tablets, 11 Sep 2026): the bar is three clean rows.
   Row 1 the brand with the date pill on the right, row 2 the search at full
   width, row 3 the five buttons sharing the row edge to edge, each with its
   word. .tb-right dissolves so its children can take their own rows. */
@media(max-width:820px){
  .topbar{padding:12px 14px;gap:10px 8px;flex-wrap:wrap}
  /* (.topbar prefix: the base .tb-mid rule sits later in the sheet and would otherwise win) */
  .topbar .tb-left{order:0;flex:0 1 auto}
  .topbar .tb-right{display:contents}
  .topbar .upd-pill{order:1;flex:0 1 auto;margin-left:auto;font-size:11px;padding:6px 10px;white-space:nowrap}
  .topbar .tb-mid{order:2;flex:1 1 100%;max-width:none;min-width:0}
  .topbar .tb-right .tb-ico,.topbar .tb-right .theme-tog,.topbar #lock{order:3;flex:1 1 auto;justify-content:center;height:38px}
  #lock{margin-left:0}
}
@media(max-width:560px){
  .upd-mon-l{display:none;}
  .upd-mon-s{display:inline;}
}
@media(max-width:400px){
  .topbar .upd-pill{flex:1 1 100%;margin-left:0;text-align:center}
}
/* Share sheet: one glass card, the same family as the alert-email modal */
#rbtShare{position:fixed;inset:0;z-index:99998;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(3,6,12,.82)}
@supports(backdrop-filter:blur(1px)){#rbtShare{backdrop-filter:blur(6px)}}
#rbtShare .rs-card{max-width:420px;width:100%;background:var(--surface);border:1px solid rgba(240,180,41,.24);border-radius:20px;padding:24px 22px 18px;box-shadow:0 30px 80px rgba(0,0,0,.6);position:relative}
#rbtShare h3{font-size:19px;font-weight:800;color:var(--text);margin:0 0 6px;letter-spacing:-.3px}
#rbtShare .rs-sub{font-size:12.5px;color:var(--text3);line-height:1.55;margin-bottom:14px}
#rbtShare .rs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
#rbtShare .rs-btn{display:flex;flex-direction:column;align-items:center;gap:6px;background:rgba(var(--wc),.05);border:1px solid rgba(var(--wc),.14);border-radius:12px;padding:12px 6px;color:var(--text2);font-size:11.5px;font-weight:700;cursor:pointer;text-decoration:none;transition:.15s}
#rbtShare .rs-btn:hover{border-color:var(--gold-border);color:var(--text);transform:translateY(-1px)}
#rbtShare .rs-btn .svgi{width:20px;height:20px}
#rbtShare .rs-link{display:flex;gap:8px;margin-top:12px}
#rbtShare .rs-link input{flex:1;min-width:0;background:rgba(var(--wc),.05);border:1px solid rgba(var(--wc),.14);border-radius:10px;padding:10px 12px;font-size:12px;color:var(--text2);font-family:'JetBrains Mono',ui-monospace,monospace}
#rbtShare .rs-copy{background:linear-gradient(135deg,#ffd166,#e6a70f);color:#0a0a12;font-weight:800;font-size:12.5px;padding:10px 14px;border:none;border-radius:10px;cursor:pointer;white-space:nowrap}
#rbtShare .rs-close{position:absolute;top:12px;right:12px;background:none;border:1px solid rgba(var(--wc),.14);color:var(--text3);border-radius:8px;width:30px;height:30px;cursor:pointer;font-size:16px;line-height:1}
#rbtShare .rs-note{font-size:10.5px;color:var(--text3);margin-top:12px;text-align:center;line-height:1.5}
@keyframes rbtSpin{to{transform:rotate(360deg)}}
#rbtRefreshBtn.spin .svgi{animation:rbtSpin .8s linear infinite}
@media (prefers-reduced-motion:reduce){#rbtRefreshBtn.spin .svgi{animation:none;opacity:.6}}


.lv-wait{background:rgba(245,158,11,.10);color:var(--gold);border:1px dashed var(--gold-border);}
.b-act{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border);}
.b-win{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border);}
.b-out{background:var(--red-dim);color:var(--red);border:1px solid var(--red-border);}
.tw-more{background:none;border:1px solid var(--border2);border-radius:7px;padding:6px 12px;font-size:11px;color:var(--text3);cursor:pointer;font-family:inherit;transition:.15s;grid-column:1/-1;width:100%;}
.tw-more:hover{background:rgba(var(--wc),.04);color:var(--text2);}
.tw-more-arr{font-size:.85em;opacity:.8;margin-left:2px;}
.tw-head-r{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end;}
.tw-fold{background:rgba(var(--wc),.03);border:1px solid var(--border2);border-radius:999px;padding:5px 12px;font-size:11px;font-weight:700;color:var(--text2);cursor:pointer;font-family:inherit;transition:border-color .15s,color .15s,background .15s;-webkit-tap-highlight-color:transparent;white-space:nowrap;min-height:28px;}
.tw-fold:hover{border-color:var(--gold-border);color:var(--gold);}
.tw-fold:active{transform:scale(.97);}
.tw-fold:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
.tw-foot{font-size:9px;color:rgba(var(--wc),.22);margin-top:8px;text-align:center;line-height:1.4;}
/* flash a card when the user jumps to it from the Live Trigger Watch */
.tw-flash{animation:twFlash 1.8s ease-out;}
@keyframes twFlash{0%{box-shadow:0 0 0 2px var(--gold),0 0 22px rgba(245,158,11,.5);}100%{box-shadow:0 0 0 0 rgba(245,158,11,0);}}
@media(prefers-reduced-motion:reduce){.tw-flash{animation:none;}}
/* a Portfolio row an alert opened (19 Oct 2026): a brief RB gold ring, about 2.5 s; held still with reduced motion */
.rbt-hold-ring,.page.on tbody tr.rbt-hold-ring{outline:2px solid #F0A500;outline-offset:-2px;border-radius:10px;box-shadow:0 0 0 4px rgba(240,165,0,.16),0 0 28px rgba(240,165,0,.18);animation:rbtHoldRing 2.5s ease-out both}
tr.rbt-hold-ring>td{background:rgba(240,165,0,.07)}
.rbt-hold-ring.rbt-hold-still,.page.on tbody tr.rbt-hold-ring.rbt-hold-still{animation:none}
@keyframes rbtHoldRing{0%{outline-color:rgba(240,165,0,0);box-shadow:0 0 0 0 rgba(240,165,0,0)}12%,78%{outline-color:#F0A500;box-shadow:0 0 0 4px rgba(240,165,0,.16),0 0 28px rgba(240,165,0,.18)}100%{outline-color:rgba(240,165,0,0);box-shadow:0 0 0 0 rgba(240,165,0,0)}}
@media(prefers-reduced-motion:reduce){.rbt-hold-ring,.page.on tbody tr.rbt-hold-ring{animation:none}}

/* ===== NO BLUR ON THE BIG SCROLLING PANELS, AT ANY WIDTH (21 Sep 2026) =====
   Owner: "I keep seeing this rendering issue every now and then": a dark band the height of one
   table row, sticking out about 90px past BOTH edges of the setups card. The card is one .glass
   panel thousands of pixels tall with backdrop-filter:blur(26px), full of charts that load and
   prices that tick. Chrome repaints a panel that size in tiles, and when one tile redraws it can
   paint the blur's REACH (3 x 26px, about 80 to 90px) outside the panel. Phones already had the
   blur off for scroll jank. What sits behind these panels is a soft gradient, so the blur was
   doing almost nothing anyone could see. Small fixed glass (the tab bar, header, modals) keeps it. */
.page .glass,.page.glass{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}

/* ===== Mobile: tighter Live Trigger Watch + scroll performance ===== */
@media(max-width:680px){
  /* Kill backdrop-filter on repeated/scrolled surfaces, the #1 scroll-jank
     source on mobile Safari. Panels stay near-solid so they still read cleanly. */
  .glass{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:rgba(20,25,38,0.96);}
  /* The bar is 97% opaque so it can sit under a blur, and the blur is off
     here. Without it that 3% stops reading as frosted glass and the page
     scrolls visibly through the bar: the record line and the "Next:" line
     ghost across the tab labels. Solid on phones. */
  .tabs{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;--navbg:#0a0e16;}
  /* Compact trigger rows: less padding, smaller type, no big note wraps */
  .tw{padding:11px 12px;}
  .tw-grid{gap:5px;}
  .tw-row{padding:7px 9px;gap:8px;align-items:flex-start;}
  .tw-sym{min-width:52px;font-size:11.5px;}
  .tw-sym small{font-size:9px;}
  .tw-goto{margin-top:3px;font-size:9px;padding:2px 0;}
  .tw-line{font-size:11.5px;white-space:normal;line-height:1.35;}
  .tw-note{font-size:10px;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .tw-dist{margin-top:3px;}
  .tw-badge{font-size:8.5px;padding:3px 6px;}
  /* One aligned grid per row (11 Sep 2026): symbol | line + distance | badge,
     and the alert chips on their own full-width row, inline, never a second
     line of pills. .tw-mid dissolves into the grid so its children align to
     the same columns as the symbol and the badge. */
  .tw-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"sym line right" "sym dist right" "note note note" "chips chips chips";column-gap:10px;row-gap:4px;align-items:start;}
  .tw-mid{display:contents;}
  .tw-sym{grid-area:sym;} .tw-line{grid-area:line;} .tw-dist{grid-area:dist;margin-top:0;} .tw-note{grid-area:note;margin-top:0;} .tw-right{grid-area:right;} .tw-chips{grid-area:chips;}
  .tw-chips .al-ctl{margin-top:2px;display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
  .tw-chips .al-ctl::-webkit-scrollbar{display:none;}
  .tw-chips .al-chip{padding:4px 9px;font-size:10.5px;flex:0 0 auto;}
  /* the symbol cell is two lines on phones (name + market, then the section link),
     so it never towers over the price line and pushes the chip row down */
  .tw-sym{min-width:0;line-height:1.25;}
  .tw-sym small{display:inline;margin:0 0 0 5px;}
  .tw-goto{display:block;margin-top:2px;}
  .tw-row{row-gap:3px;}
}

/* ===== Stock Fundamentals panel ===== */
.fund-btn{background:none;border:1px solid rgba(245,158,11,.22);border-radius:7px;padding:4px 10px;font-size:10px;font-weight:600;color:rgba(245,158,11,.65);cursor:pointer;font-family:'Inter',sans-serif;transition:all .2s;white-space:nowrap;letter-spacing:.2px;}
.fund-btn:hover{border-color:rgba(245,158,11,.45);color:var(--gold);background:rgba(245,158,11,.08);}
.fund-btn.open{border-color:rgba(245,158,11,.5);color:var(--gold);background:rgba(245,158,11,.1);}
.fund-row{background:transparent!important;}
.fund-row td{padding:0 0 10px!important;border:none!important;}
/* Live-note band under a table row (Why it fired, wait-for-pullback, managing):
   no top edge, no hover of its own, the row above drops its bottom edge, so the
   pair reads as one row with the readout spanning the full table width. */
tbody tr.has-wf{border-bottom:none;}
tbody tr.wf-row{transition:none;}
tbody tr.wf-row:hover{background:transparent;}
tbody tr.wf-row,tbody tr.wf-row.act,tbody tr.wf-row:hover{background:transparent!important;}
tbody tr.has-wf.act + tr.wf-row{background:rgba(245,158,11,0.04)!important;}   /* the readout wears its own row's tint */
tbody tr.act + tr.wf-row + tr.fund-row{background:rgba(245,158,11,0.04)!important;}   /* and so does the Fundamentals panel row under it (the band may be hidden, it is still the sibling) */
tbody tr.wf-row td{padding:0 16px 16px;vertical-align:top;}
tbody tr.wf-row .wf,tbody tr.wf-row .ext-note{margin-top:0;}
.fund-panel{background:rgba(5,8,18,.78);border:1px solid rgba(var(--wc),.07);border-radius:14px;padding:16px 18px;margin:2px 2px 0;}
.fund-panel-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.fund-panel-ticker{font-size:14px;font-weight:700;color:var(--gold);}
.fund-panel-name{font-size:11px;color:var(--text3);margin-left:6px;}
.earn-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.22);border-radius:8px;padding:5px 11px;font-size:11px;color:var(--text2);flex-shrink:0;}
.earn-badge b{color:var(--gold);}
.earn-badge .earn-days{color:rgba(245,158,11,.6);font-size:10px;}
.fund-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px;}
@media(max-width:700px){.fund-grid{grid-template-columns:repeat(2,1fr);}}
.fund-tile{background:rgba(var(--wc),.025);border:1px solid rgba(var(--wc),.055);border-radius:11px;padding:10px 12px;}
.fund-tile-label{font-size:9px;font-weight:700;letter-spacing:.7px;color:var(--text3);text-transform:uppercase;margin-bottom:4px;}
.fund-tile-val{font-size:17px;font-weight:700;color:var(--text);line-height:1.15;}
.fund-tile-val.pos{color:#22a06b;}
.fund-tile-val.neg{color:#c93b3b;}
.fund-tile-sub{font-size:10px;color:var(--text3);margin-top:2px;}
.earn-head{font-size:9px;font-weight:700;letter-spacing:.7px;color:var(--text3);text-transform:uppercase;margin-bottom:8px;}
.earn-hist{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;}
@media(max-width:600px){.earn-hist{grid-template-columns:repeat(2,1fr);}}
.earn-row{background:rgba(var(--wc),.02);border:1px solid rgba(var(--wc),.05);border-radius:9px;padding:9px 11px;}
.earn-row-date{font-size:10px;color:var(--text3);margin-bottom:3px;}
.earn-row-eps{font-size:14px;font-weight:700;color:var(--text);}
.earn-row-est{font-size:10px;color:var(--text3);margin-top:1px;}
.earn-row-beat{font-size:10px;font-weight:700;margin-top:3px;}
.earn-row-beat.pos{color:#22a06b;}
.earn-row-beat.neg{color:#c93b3b;}
.fund-loading{text-align:center;padding:24px;color:var(--text3);font-size:12px;}
/* collapsible plain-English glossary under the fundamentals tiles */
.fund-gloss-btn{margin-top:12px;}
.fund-gloss{margin-top:9px;display:flex;flex-direction:column;gap:7px;}
.fg-row{background:rgba(var(--wc),.02);border:1px solid rgba(var(--wc),.05);border-radius:9px;padding:8px 11px;font-size:11.5px;line-height:1.55;color:var(--text2);}
.fg-row b{display:block;font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--gold);margin-bottom:2px;}
.fg-row i{font-style:normal;color:var(--text);font-weight:600;}
.fund-error{text-align:center;padding:16px;color:#c93b3b;font-size:12px;}
.fund-card-wrap{margin-top:10px;border-top:1px solid rgba(var(--wc),.05);padding-top:10px;}
.fund-card-wrap .fund-panel{margin:8px 0 0;padding:12px 14px;}
.fund-card-wrap .fund-grid{grid-template-columns:repeat(2,1fr);}
.fund-card-panel{margin:10px 0 0;padding:12px 14px;}
.fund-card-panel .fund-grid{grid-template-columns:repeat(2,1fr);}
.fund-card-wrap .earn-hist{grid-template-columns:repeat(2,1fr);}

/* ===== app launch / loading splash ===== */
#splash{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;background:var(--bg);padding:24px;}
#splash.on{display:flex;}
.splash-inner{display:flex;flex-direction:column;align-items:center;gap:16px;width:min(320px,82vw);}
.splash-mark{width:64px;height:64px;border-radius:18px;background:linear-gradient(145deg,var(--gold),var(--gold-deep));display:flex;align-items:center;justify-content:center;font-size:32px;box-shadow:0 12px 34px rgba(245,158,11,.32);animation:splashpulse 1.5s ease-in-out infinite;}
.splash-name{font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.3px;}
.splash-name em{font-style:normal;color:var(--gold);}
.splash-bars{display:flex;flex-direction:column;gap:9px;width:100%;margin-top:8px;}
.splash-bars span{height:13px;border-radius:7px;background:linear-gradient(90deg,rgba(var(--wc),.05) 25%,rgba(var(--wc),.13) 37%,rgba(var(--wc),.05) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;}
.splash-bars span:nth-child(2){width:82%;}
.splash-bars span:nth-child(3){width:62%;}
.splash-txt{font-size:12.5px;color:var(--text3);margin-top:4px;}
@keyframes shimmer{0%{background-position:100% 0;}100%{background-position:-100% 0;}}
@keyframes splashpulse{0%,100%{transform:scale(1);}50%{transform:scale(1.07);}}

/* stats + filters */
.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:9px;}
.stat{font-size:11.5px;color:var(--text2);background:rgba(var(--wc),.03);border:1px solid var(--border);border-radius:20px;padding:6px 12px;display:flex;align-items:center;gap:7px;}
.dot{width:7px;height:7px;border-radius:50%;}
.stat b{font-weight:700;}
.spacer{margin-left:auto;}
/* On a phone the stats bar wraps, and margin-left:auto stranded the Total
   pill alone on its own row, right-aligned into dead space. Flow it inline
   as a fourth pill instead. */
@media(max-width:560px){ .bar .stat.spacer{margin-left:0;} }
.mkt-sig-btn,.fbtn{cursor:pointer;}
.filterhint{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--text3);margin-right:8px;}
.filterhint:after{content:'\25BE';font-size:9px;opacity:.75;}
.fbtn{background:rgba(var(--wc),.03);border:1px solid var(--border2);color:var(--text2);border-radius:20px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer;font-family:'Inter';transition:.18s;}
.fbtn:hover{border-color:var(--gold-border);color:var(--gold);}
.fbtn.on{background:var(--gold-dim);border-color:var(--gold-border);color:var(--gold);}

/* page */
.page{display:none;}
/* Tab switch: a 200ms rise instead of an instant snap. Pure compositor work
   (opacity+transform), fires only on the class flip, nothing while idle. */
.page.on{animation:pgIn .2s ease-out;}
@keyframes pgIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
/* Press state everywhere a member taps, the app should feel held, not clicked. */
:active:is(.tab,.mkt-pill,.msb-btn,.fbtn,.promo-btn,.promo-code,.glance-jump,.al-chip,.ac-tog,.tw-more,.gb-more,.mkt-clear){transform:scale(.97);}
@media(prefers-reduced-motion:reduce){.page.on{animation:none;}}
.page.on{display:block;animation:fade .42s cubic-bezier(.16,1,.3,1);}
@keyframes fade{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}
@media(prefers-reduced-motion:reduce){.page.on{animation:none;}}

/* wins strip */
.wins{display:flex;gap:11px;flex-wrap:wrap;margin-bottom:16px;}
.wins .win{flex:1;min-width:300px;border-radius:14px;padding:14px 16px;border:1px solid var(--green-border);background:linear-gradient(135deg,rgba(34,160,107,0.10),rgba(34,160,107,0.02));display:flex;align-items:center;gap:13px;}
.win-ico{width:34px;height:34px;border-radius:10px;background:var(--green-dim);border:1px solid var(--green-border);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.win-tk{font-size:15px;font-weight:800;color:var(--text);}
.win-tk small{display:block;margin-left:0;margin-top:2px;font-weight:500;color:var(--text3);font-size:10.5px;white-space:normal;overflow-wrap:normal;word-break:normal;line-height:1.35;}
.win-meta{font-size:11px;color:var(--text2);margin-top:4px;overflow-wrap:normal;word-break:normal;line-height:1.45;}
.win-gain{margin-left:auto;flex:0 0 auto;white-space:nowrap;font-family:'DM Mono';font-size:16px;font-weight:500;color:var(--green);}
/* The text column must be allowed to shrink; without this it holds its
   content width and pushes .win-gain out of the card. */
.wins .win > div{min-width:0;}
.win-tk,.win-meta{overflow:visible;text-overflow:clip;}   /* words wrap, never cut (11 Sep 2026) */

/* ── Last-resort clip ──────────────────────────────────────────────────────
   The root cause is cured at the top of this sheet (:where(#app) :where(*)
   min-width:0), so flex children can now shrink and this should never fire.
   Kept for the case where a child genuinely cannot shrink, a long unbroken
   ticker string, an embedded iframe, so the failure mode stays "clipped"
   rather than "sitting on top of the next card". */
#app .card,#app .wins .win,#app .tw,#app .glass{overflow:hidden;}
.wd{margin:0 0 16px;}
.wd-head{display:flex;align-items:center;gap:10px;margin:0 0 10px;}
.wd-k{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--green);} .wd-k .svgi{width:14px;height:14px;}
.wd-n{font-size:11.5px;color:var(--text3);} .wd-dots{margin-left:auto;display:inline-flex;gap:6px;}
.wd-dot{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:rgba(var(--wc),.18);cursor:pointer;transition:background .2s,width .2s;} .wd-dot.on{width:18px;border-radius:4px;background:var(--green);}
.wd-stack{display:grid;padding-bottom:20px;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent;}
.wd-card{grid-area:1/1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;
  border:1px solid rgba(47,174,122,.30);background:linear-gradient(180deg,rgba(18,30,26,.96),rgba(11,17,22,.96));box-shadow:0 14px 34px rgba(0,0,0,.42),inset 0 1px 0 rgba(var(--wc),.06);
  transform-origin:50% 100%;transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .35s ease-out,filter .35s ease-out;}
.wd-card.p0{z-index:3;transform:none;opacity:1;}
.wd-card.p1{z-index:2;transform:translateY(10px) scale(.955);opacity:.9;filter:brightness(.78) saturate(.75);}
.wd-card.p2{z-index:1;transform:translateY(20px) scale(.91);opacity:.75;filter:brightness(.6) saturate(.55);}
.wd-card.px{z-index:0;transform:translateY(18px) scale(.9);opacity:0;pointer-events:none;}
.wd-card.p1 > *,.wd-card.p2 > *{visibility:hidden;}   /* only the front card is read; the ones behind are depth */
.wd-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(47,174,122,.14);border:1px solid rgba(47,174,122,.35);color:#3fd894;} .wd-ico .svgi{width:17px;height:17px;}
.wd-tx b{display:block;font-size:15px;color:var(--text);} .wd-tx b small{margin-left:8px;font-size:11.5px;font-weight:500;color:var(--text3);}
.wd-tx i{display:block;font-style:normal;font-size:12.5px;color:var(--text2);margin-top:2px;overflow-wrap:anywhere;}
.wd-g{font-size:20px;font-weight:700;color:#3fd894;}
html.theme-light .wd-card{background:linear-gradient(180deg,#f3fbf7,#eaf4ef);border-color:rgba(31,130,90,.35);box-shadow:0 12px 28px rgba(20,40,30,.14),inset 0 1px 0 rgba(255,255,255,.8);}
html.theme-light .wd-g,html.theme-light .wd-ico{color:#17804f;} html.theme-light .wd-ico{background:rgba(31,130,90,.1);border-color:rgba(31,130,90,.3);}
html.theme-light .wd-card.p1,html.theme-light .wd-card.p2{filter:brightness(.94) saturate(.8);}
.wd-stack:active .wd-card.p0{transform:scale(.985);}
@media(max-width:600px){ .wd-card{padding:12px 13px;gap:11px;} .wd-g{font-size:17px;} .wd-tx b small{display:block;margin:1px 0 0;} }
.wins-head{font-size:12px;font-weight:700;color:var(--green);letter-spacing:.4px;text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:7px;}

/* table */
.card{border-radius:18px;overflow:hidden;}
.tbl-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;}
thead{background:rgba(7,9,15,0.5);border-bottom:1px solid var(--glass-border);}
th{padding:14px 16px;text-align:left;font-size:10px;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:1.2px;white-space:nowrap;}
tbody tr{border-bottom:1px solid rgba(var(--wc),0.035);transition:background .14s;}
tbody tr:last-child{border-bottom:none;}
tbody tr:hover{background:rgba(var(--wc),0.018);}
tbody tr.act{background:rgba(245,158,11,0.04);}
td{padding:14px 16px;font-size:14px;vertical-align:middle;}
.num{font-family:'DM Mono';font-size:12px;color:var(--text3);}
.asset{font-size:15px;font-weight:800;color:var(--text);letter-spacing:.2px;}
.asset small{display:block;font-size:10.5px;font-weight:500;color:var(--text3);margin-top:2px;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
/* ⭐ personal watchlist, purely additive; never alters any trade info */
.fav-star{background:none;border:none;cursor:pointer;color:var(--text3);font-size:15px;line-height:1;padding:0 6px 0 0;margin:0;vertical-align:middle;transition:color .15s,transform .12s;-webkit-tap-highlight-color:transparent;}
.fav-star:hover{color:var(--gold);transform:scale(1.18);}
.fav-star.on{color:var(--gold);} .fav-star .svgi{width:1em;height:1em;vertical-align:-0.12em;} .fav-star.on .svgi{fill:currentColor;}
.following{border-radius:14px;padding:11px 14px 12px;margin-bottom:14px;}
.fw-head{display:flex;align-items:center;gap:9px;font-size:11.5px;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;}
.fw-count{background:var(--gold);color:#0a0a12;border-radius:20px;padding:1px 8px;font-size:11px;font-weight:800;}
.fw-clear{margin-left:auto;background:none;border:1px solid var(--border);color:var(--text3);border-radius:8px;padding:3px 11px;font-size:11px;cursor:pointer;font-weight:700;transition:.15s;}
.fw-clear:hover{color:var(--gold);border-color:var(--gold-border);}
.fw-chips{display:flex;flex-wrap:wrap;gap:8px;}
.fw-chip{display:inline-flex;align-items:center;gap:8px;background:rgba(var(--wc),.04);border:1px solid var(--border);color:var(--text);border-radius:20px;padding:6px 8px 6px 13px;font-size:12.5px;font-weight:700;cursor:pointer;transition:.15s;}
.fw-chip:hover{border-color:var(--gold-border);background:var(--gold-dim);}
.fw-x{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;color:var(--text3);font-size:10px;background:rgba(var(--wc),.06);transition:.15s;}
.fw-x:hover{color:var(--text);background:#c93b3b;}
.price{font-family:'DM Mono';font-weight:500;font-size:14px;color:var(--text);}
.chg{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:8px;font-size:12px;font-weight:700;font-family:'DM Mono';white-space:nowrap;}
.chg.up{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border);}
.chg.down{background:var(--red-dim);color:var(--red);border:1px solid var(--red-border);}
.meta{font-size:13px;color:var(--text2);font-family:'DM Mono';}

.ema{font-size:11px;font-weight:700;padding:5px 11px;border-radius:8px;white-space:nowrap;display:inline-block;}
.ema.bull{background:var(--green-dim);color:var(--green);}
.ema.bear{background:var(--red-dim);color:var(--red);}
.ema.mixed{background:var(--slate-dim);color:var(--text2);}
.demw{display:flex;align-items:center;gap:9px;min-width:120px;}
.demv{font-family:'DM Mono';font-size:13px;font-weight:500;width:34px;}
.demb{flex:1;height:6px;border-radius:3px;background:rgba(var(--wc),0.05);overflow:hidden;}
.demb i{display:block;height:100%;border-radius:3px;}

.sig{font-size:11px;font-weight:800;letter-spacing:.4px;padding:5px 12px;border-radius:20px;white-space:nowrap;display:inline-block;}
.s-sbuy{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border);}
.s-pbuy{background:var(--lime-dim);color:var(--lime);border:1px solid var(--lime-border);}
.s-ssell{background:var(--red-dim);color:var(--red);border:1px solid var(--red-border);}
.s-psell{background:var(--orange-dim);color:var(--orange);border:1px solid rgba(227,83,54,.25);}
.s-chat{background:var(--gold-dim);color:var(--gold);border:1px solid var(--gold-border);}
.s-wait{background:var(--slate-dim);color:var(--text2);border:1px solid var(--border2);}

/* counter-trend trade tag (bounce buy / short-term drop) */
.ctx{display:inline-block;margin-left:6px;font-size:9.5px;font-weight:700;padding:3px 9px;border-radius:14px;letter-spacing:.3px;vertical-align:middle;white-space:nowrap;}
.ctx-bounce{background:var(--blue-dim);color:var(--blue);border:1px solid var(--blue-border);}
.ctx-drop{background:var(--orange-dim);color:var(--orange);border:1px solid rgba(227,83,54,.30);}

.b-active{background:var(--gold-dim);color:var(--gold);border:1px solid var(--gold-border);}
.b-pot{background:var(--purple-dim);color:var(--purple);border:1px solid var(--purple-border);}
.b-watch{background:var(--blue-dim);color:var(--blue);border:1px solid var(--blue-border);}
.b-win{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border);}
.b-out{background:var(--red-dim);color:var(--red);border:1px solid var(--red-border);}

.note{font-size:13px;color:var(--text2);line-height:1.62;margin-top:7px;max-width:360px;}
/* ── MID-WEEK CALLS ────────────────────────────────────────────────────────
   Deliberately unlike a setup card: no state pill, no live price, no alert
   bell. It should read as a written note with a chart, because that is what it
   is, anything that looks like a board row invites people to expect triggers
   and alerts it does not have. */
.mw-intro{margin-bottom:12px;}
/* Vol Entries explainer. Reads as a short briefing, not a marketing panel:
   one accent, hairline borders, no filled cards competing with the calls. */
.mw-how{border:1px solid rgba(var(--wc),.08);background:rgba(var(--wc),.02);border-radius:12px;
  padding:0 16px;margin-bottom:14px;}
.mw-how[open]{padding-bottom:16px;}
summary.mw-how-top{list-style:none;cursor:pointer;margin:0;padding:11px 0;}
summary.mw-how-top::-webkit-details-marker{display:none;}
.mw-how-top h3{flex:1;}
.mw-how-chev{width:15px!important;height:15px!important;color:var(--text3)!important;transition:transform .2s ease-out;}
.mw-how[open] .mw-how-chev{transform:rotate(180deg);}
.mw-how[open] summary.mw-how-top{margin-bottom:6px;}
.mw-how-top{display:flex;align-items:center;gap:9px;margin-bottom:11px;}
.mw-how-top .svgi{width:17px;height:17px;color:var(--gold);flex:none;}
.mw-how-top h3{font-size:15px;font-weight:800;letter-spacing:-.2px;margin:0;color:var(--text);}
.mw-how.xp{padding:0 16px;} .mw-how.xp[open]{padding-bottom:15px;}
.mw-noalert{margin:12px 0 0;max-width:680px;}

.mw-h{font-family:var(--serif);font-size:27px;font-weight:400;letter-spacing:-.2px;margin:0 0 6px;color:var(--text);}
.mw-sub{font-size:13.5px;color:var(--text2);line-height:1.65;margin:0;max-width:680px;}
.mw-card{border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.025);border-radius:14px;
  padding:18px 20px;margin-bottom:16px;}
.mw-card.closed{opacity:.72;}
.mw-top{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap;margin-bottom:11px;}
.mw-pair{font-size:17px;font-weight:800;letter-spacing:-.2px;color:var(--text);}
.mw-when{font-size:11.5px;color:var(--text3);}
.mw-tag{font-size:10.5px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;
  padding:3px 8px;border-radius:5px;border:1px solid rgba(245,158,11,.4);color:var(--gold);background:rgba(245,158,11,.09);}
.mw-tag.done{border-color:rgba(255,255,255,.16);color:var(--text3);background:rgba(255,255,255,.04);}
.mw-body{font-size:14.5px;line-height:1.75;color:var(--text);white-space:pre-line;}
/* STILL TAKEABLE UP TO X (16 Oct 2026, js/vol-takeable.js): one quiet line under an open Vol Entry, gold dot while the
   entry still gives 1.5R to the called target, muted once it does not. Display only. */
.mw-capw:empty{display:none;}
.mw-capw{padding:0 14px 10px;}
.mw-cap{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;font-size:12.5px;line-height:1.45;color:var(--text2);}
.mw-cap-dot{flex:none;color:rgba(var(--wc),.28);}
.mw-cap-dot.on{color:var(--gold);filter:drop-shadow(0 0 4px rgba(240,165,0,.45));}
.mw-cap.ok .mw-cap-t{color:var(--text);}
.mw-cap-r{font-family:'DM Mono',ui-monospace,monospace;font-size:11.5px;color:var(--text3);font-variant-numeric:tabular-nums;}
.mw-res{margin-top:12px;padding:11px 13px;border-radius:9px;font-size:13.5px;line-height:1.6;
  border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:var(--text2);}
.mw-res b{color:var(--text);}
.sig.b-done{background:rgba(var(--wc),.07);border-color:rgba(var(--wc),.2);color:var(--text2);}
.mw-r{display:inline-block;margin-left:7px;font-weight:800;font-variant-numeric:tabular-nums;}
.mw-r.up{color:var(--green);}
.mw-r.down{color:var(--red);}
.mw-chart{display:block;margin-top:14px;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.09);
  line-height:0;cursor:zoom-in;}
.mw-chart img{width:100%;height:auto;display:block;}
.mw-chart{position:relative;margin:14px 0 0;}
.mw-chart figcaption{position:absolute;left:8px;top:8px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;line-height:1;padding:5px 8px;border-radius:6px;background:rgba(7,9,15,.72);color:var(--text2);backdrop-filter:blur(4px);}
.mw-pair2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.mw-pair2 .mw-chart{margin-top:14px;}
@media(max-width:640px){.mw-pair2{grid-template-columns:1fr;gap:0;}.mw-pair2 .mw-chart+.mw-chart{margin-top:10px;}}
.mw-zoomnote{font-size:11px;color:var(--text3);margin-top:6px;}
.mw-sub-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 16px;}
.mw-sub-row .al-chip{padding:8px 13px;font-size:12px;}
.mw-sub-note{font-size:12px;color:var(--text3);}
.mw-arch-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:30px 0 4px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08);}
.mw-arch-h span{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);}
.mw-arch-h b{font-family:'DM Mono',monospace;font-size:15px;font-weight:600;}
.mw-arch-h b.up{color:var(--green);} .mw-arch-h b.down{color:var(--red);}
.mw-arch-m{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin:18px 0 9px;}
.mw-arch-h{margin-top:22px;padding-top:14px;}
.mw-arch-m{margin:12px 0 7px;}
/* Vol rows: the Swing/Forex lane look, one hairline box, one row per call (5 Oct 2026) */
.mw-lane{border:1px solid rgba(var(--wc),.08);background:rgba(var(--wc),.02);border-radius:12px;overflow:hidden;margin-bottom:10px;}
.mw-lane .sw-item:first-child{border-top:0;}
.mw-sum{display:grid;grid-template-columns:minmax(118px,auto) 78px minmax(0,1fr) 64px 162px auto;gap:12px;align-items:center;width:100%;min-height:54px;padding:9px 14px;
  border:0;background:none;font:inherit;color:var(--text2);cursor:pointer;text-align:left;transition:background .18s ease-out;}
.mw-sum:hover{background:rgba(245,158,11,.05);} .mw-sum:active{transform:scale(.995);}
.mw-sum:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;}
.mw-sum .sw-st{justify-self:start;}
.mw-sum:hover .sw-go{background:rgba(245,158,11,.18);}
.mw-item.open .mw-sum{background:rgba(245,158,11,.06);}
.mw-id{display:flex;align-items:center;gap:8px;min-width:0;}
.mw-sum .mw-pair{font-size:15.5px;font-weight:800;letter-spacing:-.01em;color:var(--text);white-space:nowrap;}
.mw-side{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:6px;border:1px solid;}
.mw-side.up{color:#5fd3a2;border-color:rgba(47,174,122,.4);} .mw-side.down{color:#ff8a87;border-color:rgba(210,81,79,.4);}
.mw-prev{font-size:13px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.mw-sum .mw-r{margin:0;font-family:'DM Mono',monospace;font-size:13px;font-weight:700;text-align:right;}
.mw-sum .mw-when{font-family:'DM Mono',monospace;font-size:11.5px;color:var(--text3);text-align:right;white-space:nowrap;}
.mw-item.closed .mw-pair,.mw-item.closed .mw-prev{opacity:.8;}
.mw-det{padding:4px 16px 16px;}
.mw-det .mw-body{font-size:14px;line-height:1.65;}
.mw-det .mw-res{margin-top:10px;padding:9px 12px;font-size:13px;border-color:rgba(var(--wc),.1);background:rgba(var(--wc),.035);}
.mw-item.open .mw-prev{visibility:hidden;}
.mw-det > .mw-chart{max-width:760px;}
.mw-meta{margin-top:8px;font-size:11.5px;color:var(--text3);font-family:'DM Mono',monospace;}
.mw-det .mw-chart{margin-top:12px;border-color:rgba(var(--wc),.09);}
@media(max-width:760px){
  .mw-sum{grid-template-columns:1fr auto auto;grid-template-areas:"id st go" "pv pv pv" "wh wh r";gap:5px 10px;padding:11px 12px;}
  .mw-id{grid-area:id;} .mw-sum .sw-st{grid-area:st;font-size:11.5px;padding:4px 9px;} .mw-sum .sw-go{grid-area:go;padding:7px 10px;}
  .mw-prev{grid-area:pv;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.45;}
  .mw-sum .mw-when{grid-area:wh;text-align:left;} .mw-sum .mw-r{grid-area:r;}
  .mw-det{padding:2px 12px 14px;} .mw-item.open .mw-prev{display:none;}
}
html.theme-light .mw-side.up,html.theme-light .mw-sum .mw-r.up{color:#167a4c;} html.theme-light .mw-side.down,html.theme-light .mw-sum .mw-r.down{color:#b0302f;}
html.theme-light .mw-chart figcaption{background:rgba(255,255,255,.85);color:#3a3a46;}
.wk-legend{position:absolute;left:10px;top:8px;display:flex;gap:12px;flex-wrap:wrap;font-size:10.5px;color:var(--text3);pointer-events:none;font-weight:600;letter-spacing:.01em;}
.wk-legend span{display:inline-flex;align-items:center;gap:5px;}
.wk-legend i{display:inline-block;width:14px;height:2px;border-radius:2px;}
.wk-legend b{font-family:'DM Mono',monospace;font-weight:500;color:var(--text2);}
.wk-note{position:absolute;left:10px;bottom:26px;font-size:10.5px;color:var(--text3);pointer-events:none;}
.cz{cursor:crosshair;touch-action:pan-y;user-select:none;-webkit-user-select:none;}
.cz.cz-drag{cursor:grabbing;}
.cz-read{position:absolute;left:8px;top:6px;font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--text3);pointer-events:none;font-family:'DM Mono',monospace;}
.wk-legend .wk-when{color:var(--text3);font-weight:500;opacity:.8;}
@media(max-width:480px){.wk-legend{gap:6px 10px;font-size:10px;} .wk-legend .wk-when{display:none;}}
.mc-out{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:100%;text-decoration:none;color:var(--text3);font-size:12.5px;font-weight:600;background:rgba(var(--wc),.02);transition:color .18s;}
.mc-out:hover{color:var(--gold);}
.mc-out .svgi{width:16px;height:16px;}
.mkt-cur-fx{border-color:rgba(245,158,11,.4)!important;color:var(--gold)!important;}
.mkt-cur-q{border-color:rgba(255,255,255,.18)!important;color:var(--text3)!important;}
.mw-empty{border:1px dashed rgba(255,255,255,.13);border-radius:12px;padding:14px 20px;text-align:center;
  color:var(--text3);font-size:13.5px;line-height:1.7;}
/* Full-size view. The charts are wide dual-pane screenshots, so on a phone the
   card version is only ever a preview. */
.mw-lb{position:fixed;inset:0;z-index:9999;background:rgba(4,4,10,.94);display:none;
  align-items:center;justify-content:center;padding:18px;cursor:zoom-out;}
.mw-lb.on{display:flex;}
.mw-lb img{max-width:100%;max-height:100%;border-radius:8px;}
@media(max-width:640px){
  .mw-card{padding:15px 15px;}
  .mw-body{font-size:14px;}
  .mw-h{font-size:23px;}
}

/* Mid-week owner edit (stop moved / closed early). Gold so it reads as a
   change to a level the member may already be trading, not decoration. */
.lvl-edit{display:flex;align-items:center;gap:7px;margin-top:9px;padding:7px 10px;border:1px solid rgba(245,158,11,.34);
  background:rgba(245,158,11,.08);border-radius:8px;font-size:12px;color:#f0c476;line-height:1.5;max-width:360px;}
.lvl-edit .svgi{flex:none;width:14px;height:14px;}
.lvl-trail{display:flex;align-items:flex-start;gap:7px;margin-top:8px;padding:8px 11px;border-radius:10px;
  background:rgba(245,158,11,.07);border:1px solid rgba(245,158,11,.22);font-size:12.5px;color:var(--text2);line-height:1.5;}
.lvl-trail .svgi{flex:none;width:14px;height:14px;margin-top:2px;color:var(--gold);}
.lvl-was{text-decoration:line-through;color:var(--text3);font-weight:500;margin-left:5px;font-size:11px;}
.setup{font-family:'DM Mono';font-size:12.5px;color:var(--text2);margin-top:7px;line-height:1.55;}
.setup b{color:var(--gold);font-weight:500;}
.lvls{display:flex;gap:14px;margin-top:8px;flex-wrap:wrap;}
.lvl span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.6px;color:var(--text3);font-weight:700;margin-bottom:2px;}
.lvl b{font-family:'DM Mono';font-size:12.5px;color:var(--text);font-weight:500;}
/* Live price cell, sits inline with Entry/Stop/TP, filled from the live feed. */
.lvl-live{padding-left:14px;border-left:1px solid var(--border,rgba(255,255,255,.09));}
.lvl-live span{display:flex;align-items:center;gap:5px;color:var(--text2,#9aa4b2);}
.lvl-live b{color:var(--gold);}
.lpx-dot{width:6px;height:6px;border-radius:50%;background:#3fbb85;flex-shrink:0;box-shadow:0 0 0 0 rgba(63,187,133,.6);animation:lpxpulse 1.9s 4;}
@keyframes lpxpulse{0%{box-shadow:0 0 0 0 rgba(63,187,133,.55)}70%{box-shadow:0 0 0 5px rgba(63,187,133,0)}100%{box-shadow:0 0 0 0 rgba(63,187,133,0)}}
/* Squeeze price column upgrades to the live price when the feed has one. */
.sq-live-px.is-live{display:inline-flex;align-items:center;gap:5px;color:var(--gold);}
.none{color:var(--border2);font-size:16px;}

/* mobile cards */
.mcards{display:none;flex-direction:column;gap:11px;}
.mcard{border-radius:15px;padding:15px;}
.mc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px 10px;margin-bottom:11px;flex-wrap:wrap;}
.mc-top .ctx{margin-left:0;}
.mc-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px;}

/* how we trade */
.how{margin-top:18px;border-radius:18px;overflow:hidden;}
.how-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:18px 22px;cursor:pointer;background:none;border:none;color:var(--text);font-family:'Inter';font-size:15px;font-weight:800;letter-spacing:-.2px;}
.how-toggle .chev{transition:transform .25s;color:var(--gold);}
.how.open .chev{transform:rotate(180deg);}
.how-body{display:none;padding:0 22px 24px;}
.how.open .how-body{display:block;}
.how-imgs{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:20px;}
.how-imgs img{width:100%;height:auto;aspect-ratio:auto;border-radius:13px;border:1px solid var(--glass-border);display:block;box-shadow:0 12px 36px rgba(0,0,0,.5);}
.sq-rules{grid-template-columns:repeat(4,1fr);}
@media(max-width:1099px){.sq-rules{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.sq-rules{grid-template-columns:1fr;}}
.risk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:11px;}
.risk{background:rgba(17,21,34,.7);border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:12px;padding:15px 17px;}
.risk h4{font-size:12.5px;font-weight:800;color:var(--gold);margin-bottom:7px;}
.risk p{font-size:12.5px;color:var(--text2);line-height:1.65;}
.risk p b{color:var(--text);}

/* criteria pills */
.crit{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:9px;}
.crit span{font-size:11px;color:var(--text2);background:rgba(var(--wc),.03);border:1px solid var(--border);border-radius:20px;padding:5px 12px;}

/* footer tools */
.tools{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px;}
@media(max-width:900px){ .tools{grid-template-columns:repeat(2,1fr);} }
@media(max-width:430px){ .tools{grid-template-columns:1fr;} }
/* Upsell slot: same rhythm as the cards around it, on every page. */
.promo-slot{display:flex;flex-direction:column;margin:22px 0 8px;}
.promo-slot:empty{display:none;}
.tool{border-radius:14px;padding:14px 16px;display:flex;align-items:center;gap:12px;text-decoration:none;transition:transform .16s,border-color .16s;}
.tool:hover{transform:translateY(-3px);border-color:var(--gold-border);}
.tool-ico{font-size:20px;}
.tool-l{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--gold);font-weight:700;}
.tool-n{font-size:13px;color:var(--text);font-weight:600;margin-top:2px;}
.foot{text-align:center;font-size:11.5px;color:var(--text3);margin-top:26px;line-height:1.8;}
.foot a{color:var(--gold);text-decoration:none;}

/* ===== SCAN STATUS BAR ===== */
.scan-status{background:rgba(15,20,32,0.6);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:12px;align-items:center;gap:12px;display:none;}
.scan-status.visible{display:flex;}
.scan-bar-track{flex:1;height:3px;background:rgba(var(--wc),.07);border-radius:3px;overflow:hidden;}
.scan-bar-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--gold),#fcd34d);border-radius:3px;transition:width .4s ease;}
.scan-bar-msg{font-size:11px;font-weight:700;color:var(--text3);white-space:nowrap;letter-spacing:.2px;}
.scan-done-msg{font-size:11px;font-weight:700;color:var(--green);white-space:nowrap;}

/* ===== PORTFOLIO BUILDER ===== */
.pb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;margin-bottom:18px;}
@media(max-width:820px){.pb-grid{grid-template-columns:1fr;}}
.pb-card{border-radius:16px;overflow:hidden;display:flex;flex-direction:column;}
.pb-card-top{padding:14px 16px 12px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.pb-asset{font-size:16px;font-weight:800;color:var(--text);letter-spacing:.2px;}
.pb-asset small{display:block;font-size:10.5px;font-weight:500;color:var(--text3);margin-top:2px;}
.pb-status{font-size:10px;font-weight:800;letter-spacing:.5px;padding:5px 11px;border-radius:20px;white-space:nowrap;text-transform:uppercase;}
.pb-buy{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border);}
.pb-hold{background:var(--gold-dim);color:var(--gold);border:1px solid var(--gold-border);}
.pb-ext{background:var(--red-dim);color:var(--red);border:1px solid var(--red-border);}
.pb-watch{background:var(--blue-dim);color:var(--blue);border:1px solid var(--blue-border);}
.pb-chart{width:100%;height:120px;background:rgba(var(--wc),0.02);position:relative;overflow:hidden;}
.pb-chart .tradingview-widget-container,
.pb-chart .tradingview-widget-container__widget,
.pb-chart iframe{height:100%!important;width:100%!important;display:block;}
.pb-chart .minichart-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:9px;letter-spacing:.5px;text-transform:uppercase;font-weight:700;}
.pb-levels{padding:12px 16px;display:flex;flex-direction:column;gap:9px;}
.pb-row{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.pb-label{font-size:11px;color:var(--text2);font-weight:600;display:flex;align-items:center;gap:6px;}
.pb-label .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.pb-val{font-family:'DM Mono';font-size:12px;font-weight:500;color:var(--text);}
.pb-val.gold{color:var(--gold);}
.pb-val.green{color:var(--green);}
.pb-val.red{color:var(--red);}
.pb-val.blue{color:var(--blue);}
.pb-divider{height:1px;background:rgba(var(--wc),0.04);margin:2px 0;}
.pb-note{padding:0 16px 14px;font-size:11.5px;color:var(--text2);line-height:1.6;}
.pb-scale{padding:10px 16px;background:rgba(7,9,15,0.4);border-top:1px solid rgba(var(--wc),0.04);}
.pb-scale-title{font-size:9px;text-transform:uppercase;letter-spacing:.7px;color:var(--text3);font-weight:800;margin-bottom:8px;}
.pb-scale-row{display:flex;gap:6px;flex-wrap:wrap;}
.pb-scale-pill{font-size:10.5px;font-family:'DM Mono';font-weight:500;padding:4px 10px;border-radius:8px;background:rgba(var(--wc),0.04);border:1px solid var(--border);}
.pb-scale-pill.tp1{color:var(--lime);border-color:var(--lime-border);}
.pb-scale-pill.tp2{color:var(--green);border-color:var(--green-border);}
.pb-scale-pill.tp3{color:var(--gold);border-color:var(--gold-border);}
.pb-scale-pill.trail{color:var(--blue);border-color:var(--blue-border);}
.pb-scale-pill.hold-pill{color:var(--orange);border-color:var(--orange-dim);background:rgba(227,83,54,0.08);}
.pb-trail-note{margin-top:9px;font-size:11.5px;line-height:1.55;color:var(--text2);background:rgba(227,83,54,0.07);border:1px solid rgba(227,83,54,0.22);border-radius:9px;padding:9px 12px;}
.pb-trail-note b{color:var(--orange);}
/* Buy-zone initial stop + DeM entry guidance */
.pb-stop-note{margin-top:9px;font-size:11.5px;line-height:1.55;color:var(--text2);background:rgba(var(--wc),0.03);border:1px solid var(--border);border-radius:9px;padding:9px 12px;}
.pb-stop-note b{font-family:'DM Mono';font-weight:500;color:var(--text);}
.pb-dem-ok{margin-top:7px;font-size:11.5px;line-height:1.55;color:var(--text2);background:rgba(34,160,107,0.06);border:1px solid rgba(34,160,107,0.22);border-radius:9px;padding:9px 12px;}
.pb-dem-ok b{color:var(--green);}
.pb-dem-warn{margin-top:7px;font-size:11.5px;line-height:1.55;color:var(--text2);background:rgba(201,59,59,0.06);border:1px solid rgba(201,59,59,0.24);border-radius:9px;padding:9px 12px;}
.pb-dem-warn b{color:var(--red);}
.pb-dem-warn .num, .pb-dem-ok .num, .pb-stop-note .num{font-family:'DM Mono';font-weight:500;color:var(--gold);}
.pb-dist{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:8px;font-size:10.5px;font-family:'DM Mono';font-weight:600;margin-top:3px;}

/* ===== THE DESK'S HOLDS (Portfolio Builder, 23 Sep 2026). Blue is the portfolio colour. ===== */
.pb-holds:empty{display:none;}   /* no empty strip while the holds load or if they cannot (4 Oct 2026) */
.pb-holds{position:relative;margin:0 0 14px;padding:16px 18px 14px;border:1px solid rgba(53,104,212,.38);border-radius:16px;
  background:radial-gradient(ellipse 50% 70% at 12% 0%,rgba(53,104,212,.2),transparent 70%),linear-gradient(180deg,rgba(var(--wc),.045),rgba(var(--wc),.02));box-shadow:inset 0 1px 0 rgba(var(--wc),.08)}
.pbh-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px 24px;flex-wrap:wrap;margin-bottom:14px}
.pbh-k{font-size:10.5px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:#7aa3e0;margin-bottom:6px}
.pbh-h{margin:0 0 6px;font-size:17px;font-weight:800;letter-spacing:-.3px;color:var(--text)}
.pbh-p{margin:12px 0 0;font-size:12.5px;line-height:1.6;color:var(--text2);max-width:62ch}
.pbh-p b{color:var(--text)}
.pbh-lead{min-width:0;flex:1 1 420px}
.pbh-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:6px}
.pbh-pill{display:inline-flex;align-items:center;padding:5px 11px;border-radius:999px;border:1px solid rgba(122,163,224,.4);background:rgba(53,104,212,.14);color:#9dbbea;font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;white-space:nowrap}
.pbh-stat{font-size:12.5px;color:var(--text2)}.pbh-stat b{color:var(--text)}
.pbh-stamp{font-size:11px;color:var(--text3)}
.pbh-guide{border-color:rgba(122,163,224,.45)!important;color:#9dbbea!important;min-height:36px;font-size:12px}
.pbh-table th{color:#7aa3e0}
.pbh-risk{color:var(--red)!important}.pbh-tgt{color:var(--green)!important}
.pbh-sub{font-size:9px;color:var(--text3);font-weight:600;margin-top:1px}
.pbh-r{font-family:'DM Mono',monospace;font-size:13.5px}.pbh-r.up{color:var(--green)}.pbh-r.dn{color:var(--red)}
.pbh-state{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;padding:3px 8px;border-radius:999px;border:1px solid var(--border)}
.pbh-state.up{color:var(--green);border-color:var(--green-border);background:var(--green-dim)}.pbh-state.dn{color:var(--red);border-color:var(--red-border);background:var(--red-dim)}.pbh-state.wait{color:var(--text3)}.pbh-state.hand{color:var(--text2);background:rgba(var(--wc),.06);border-color:var(--border)}
.pbh-foot{margin-top:10px;font-size:11px;line-height:1.5;color:var(--text3)}
.pbh-state.hit-risk{color:#fff;border-color:rgba(201,59,59,.6);background:rgba(201,59,59,.28)}.pbh-state.hit-target{color:#0a0e16;border-color:var(--green);background:var(--green)}
.pbh-row-risk td{background:rgba(201,59,59,.06)}.pbh-row-target td{background:rgba(34,160,107,.06)}
.pbh-stat-risk{color:var(--red)}.pbh-stat-tgt{color:var(--green)}
.pbh-ctl{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;flex:none;align-self:flex-start}
.pbh-fold{background:rgba(var(--wc),.04);border:1px solid rgba(122,163,224,.45);border-radius:999px;padding:0 14px;min-height:36px;font:700 12px/1 inherit;font-family:inherit;color:#bcd0f0;cursor:pointer;transition:border-color .15s,background .15s}
.pbh-fold:hover{background:rgba(53,104,212,.16);border-color:#7aa3e0}
.pbh-fold:active{transform:scale(.97)}
.pbh-jump{position:relative;overflow:hidden;display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;font-size:12px;font-weight:700;color:var(--gold);text-decoration:none;border:1px solid rgba(245,158,11,.55);background:var(--gold-dim);box-shadow:0 0 0 1px rgba(245,158,11,.12),0 0 18px rgba(245,158,11,.22);transition:box-shadow .2s,transform .15s}
.pbh-jump:hover{box-shadow:0 0 0 1px rgba(245,158,11,.3),0 0 26px rgba(245,158,11,.38)}
.pbh-jump:active{transform:scale(.97)}
/* one sheen, on a slow loop: the panel head has a single hero moment and this is it */
.pbh-jump::after{content:"";position:absolute;top:-40%;bottom:-40%;left:-60%;width:45%;background:linear-gradient(105deg,rgba(255,255,255,0) 0%,rgba(255,236,190,.28) 50%,rgba(255,255,255,0) 100%);transform:skewX(-18deg);animation:pbh-sheen 4.2s ease-in-out 4;pointer-events:none}
@keyframes pbh-sheen{0%,62%{left:-60%}100%{left:130%}}
@media(prefers-reduced-motion:reduce){.pbh-jump::after{animation:none;display:none}}
.pbh-jump:hover{color:var(--gold2);text-decoration:none}
.pbh-h-sub{font-weight:600;color:var(--text3);font-size:14px}
.pb-holds.pbh-closed{padding-bottom:12px}
.pb-holds.pbh-closed .pbh-p,.pb-holds.pbh-closed .pbh-foot,.pb-holds.pbh-closed .pbh-ledger{display:none}
.pbh-ledger{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.pbh-lhead{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:12px}
.pbh-lhead .pbh-k{margin-bottom:0}
.pbh-lsub{font-size:11.5px;color:var(--text3)}
.pbh-lstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 12px}
.pbh-lstats div{padding:10px 12px;border:1px solid rgba(122,163,224,.28);border-radius:12px;background:rgba(53,104,212,.08)}
.pbh-lstats b{display:block;font-family:'DM Mono',monospace;font-size:17px;color:var(--text)}
.pbh-lstats b.up{color:var(--green)}.pbh-lstats b.dn{color:var(--red)}
.pbh-lstats span{font-size:11px;color:var(--text3)}
.pbh-lnote{font-size:12px;line-height:1.5;color:var(--text3);margin:0 0 10px;padding:9px 12px;border:1px dashed rgba(122,163,224,.3);border-radius:10px}
.pb-holds.pbh-closed .pbh-cards .pbh-card:nth-child(n+4),.pb-holds.pbh-closed .pbh-table tbody tr:nth-child(n+4){display:none}
.pb-holds.pbh-closed .pbh-head{margin-bottom:10px}
.pbh-more{position:relative;display:flex;justify-content:center;margin-top:12px}
/* light mode (5 Oct 2026): the holds panel's pale blue text sat on a pale blue fill, and the fade was black */
html.theme-light .pbh-k,html.theme-light .pbh-table th{color:#2f5aa8}
html.theme-light .pbh-pill{color:#244c94;background:rgba(53,104,212,.10);border-color:rgba(53,104,212,.35)}
html.theme-light .pbh-guide{color:#244c94!important;border-color:rgba(53,104,212,.45)!important;background:rgba(53,104,212,.06)!important}
html.theme-light .pbh-fold,html.theme-light .pb-holds.pbh-closed .pbh-more .pbh-fold{color:#244c94;background:#fff;border-color:rgba(53,104,212,.45)}
html.theme-light .pb-holds.pbh-closed .pbh-more::before{background:linear-gradient(180deg,rgba(236,239,244,0),rgba(236,239,244,.92))}
html.theme-light .mkt-held{color:#244c94;background:rgba(53,104,212,.10)}
.pb-holds.pbh-closed .pbh-more::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:40px;background:linear-gradient(180deg,rgba(7,7,15,0),rgba(7,7,15,.82));pointer-events:none}
.pb-holds.pbh-closed .pbh-more .pbh-fold{min-height:40px;padding:0 18px;background:rgba(53,104,212,.14)}
@media(max-width:700px){.pbh-ctl{flex:1 1 100%;justify-content:flex-start;gap:8px}.pbh-ctl .pbh-guide,.pbh-ctl .pbh-jump{flex:0 1 auto;min-width:0}.pbh-fold,.pbh-jump,.pbh-guide{min-height:38px;font-size:11.5px;padding:0 13px}.pb-holds.pbh-closed .pbh-more .pbh-fold{min-height:38px}}
.mkt-held{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;border:1px solid rgba(122,163,224,.4);background:rgba(53,104,212,.14);color:#9dbbea;font-size:8.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;vertical-align:middle}
.pbh-cards{display:none}
.pbh-card{padding:12px 0;border-top:1px solid var(--border)}
.pbh-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.pbh-card-name{font-family:var(--disp,'Plus Jakarta Sans',sans-serif);font-size:14.5px;font-weight:800;color:var(--text)}
.pbh-card-r{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.pbh-card-lv{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:11.5px;color:var(--text3)}
.pbh-card-lv b{font-family:'DM Mono',monospace;font-weight:500;color:var(--text2);margin-left:3px}
/* hold statuses (14 Oct 2026): one gold accent (Trim), the rest muted and deep so the accent wins */
.pbh-st{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.pbh-st-card{flex-direction:row;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-top:9px}
.pbh-st-td{min-width:170px;max-width:220px}
.pbh-st-row{margin-top:7px}
.pbh-st-pill{display:inline-flex;align-items:center;gap:5px;flex:none;font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;padding:3px 9px 3px 7px;border-radius:999px;border:1px solid rgba(var(--wc),.10);background:rgba(var(--wc),.04);color:var(--text2);white-space:nowrap}
.pbh-st-i{width:12px;height:12px;flex:none}
.pbh-st-pill.k-add{color:#a9b783;border-color:rgba(126,140,84,.45);background:rgba(126,140,84,.14)}
.pbh-st-pill.k-trim{color:var(--gold);border-color:rgba(245,158,11,.5);background:rgba(245,158,11,.10)}
.pbh-st-pill.k-sold{color:#de8a84;border-color:rgba(178,34,34,.55);background:rgba(178,34,34,.18)}
.pbh-st-pill.k-wait{color:var(--text3)}
.pbh-st-why{font-family:'DM Mono',monospace;font-size:11px;line-height:1.4;color:var(--text3);min-width:0;overflow-wrap:anywhere}
.pbh-legend{margin-top:14px;padding:12px 14px;border:1px solid rgba(var(--wc),.08);border-radius:12px;background:rgba(var(--wc),.025)}
.pbh-legend-k{font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--text3);margin-bottom:8px}
.pbh-legend-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 22px}
.pbh-legend-i{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.5;color:var(--text2);min-width:0}
.pbh-legend-i .pbh-st-pill{min-width:86px;justify-content:flex-start;margin-top:1px}
.pbh-legend-n{margin-top:9px;font-size:11px;line-height:1.5;color:var(--text3)}
html.theme-light .pbh-st-pill.k-add{color:#4f5a2c;border-color:rgba(99,107,47,.45);background:rgba(99,107,47,.10)}
html.theme-light .pbh-st-pill.k-trim{color:var(--gold);border-color:rgba(154,92,0,.45);background:rgba(154,92,0,.08)}
html.theme-light .pbh-st-pill.k-sold{color:#8f1d1d;border-color:rgba(178,34,34,.45);background:rgba(178,34,34,.08)}
@media(max-width:700px){.pbh-legend{padding:11px 12px}.pbh-legend-g{grid-template-columns:1fr}}
/* the holds table has ten columns of numbers: up to tablet width it reads as cards, never a sideways scroll */
@media(min-width:701px) and (max-width:1100px){.pbh-cards{display:block;margin-top:4px}.pbh-wrap{display:none}.pbh-card-lv{gap:6px 18px}}
@media(max-width:700px){.pbh-side{align-items:flex-start}.pbh-cards{display:block;margin-top:4px}.pbh-wrap{display:none}}
/* ===== MARKET TABLE (Portfolio Builder) ===== */
.mkt-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px;}
.mkt-pill{background:rgba(var(--wc),.03);border:1px solid var(--border2);color:var(--text2);border-radius:20px;padding:6px 13px;font-size:11.5px;font-weight:600;cursor:pointer;font-family:'Inter';transition:.16s;white-space:nowrap;}
@media(max-width:820px){
  /* the filter rows wrap, never scroll off the edge (owner, 4 Oct 2026) */
  #mkt-cats,#mkt-idx{flex-wrap:wrap;overflow:visible;margin-bottom:8px;gap:6px;}
  .mkt-sigfilter{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-bottom:8px;padding-bottom:2px;}
  #mkt-cats::-webkit-scrollbar,#mkt-idx::-webkit-scrollbar,.mkt-sigfilter::-webkit-scrollbar{display:none;}
  /* Pills must keep their own width inside a nowrap flex row, or they squash. */
  #mkt-cats .mkt-pill,#mkt-idx .mkt-pill,.mkt-sigfilter>*{flex:none;}
  .mkt-pill{padding:5px 11px;font-size:11px;}
  .mkt-idxlabel{flex:none;}
}
.mkt-pill:hover{border-color:var(--gold-border);color:var(--gold);}
.mkt-pill.on{background:var(--gold-dim);border-color:var(--gold-border);color:var(--gold);}
.mkt-pill .c{opacity:.6;font-size:10px;margin-left:3px;}
.mkt-toggle{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--text2);font-weight:600;cursor:pointer;background:rgba(var(--wc),.03);border:1px solid var(--border2);border-radius:20px;padding:6px 13px;transition:.16s;}
.mkt-toggle:hover{border-color:var(--green-border);color:var(--green);}
.mkt-toggle.on{background:var(--green-dim);border-color:var(--green-border);color:var(--green);}
.mkt-toggle .sw{width:30px;height:16px;border-radius:10px;background:var(--border2);position:relative;transition:.16s;flex-shrink:0;}
.mkt-toggle.on .sw{background:var(--green);}
.mkt-toggle .sw::after{content:'';position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:.16s;}
.mkt-toggle.on .sw::after{left:16px;}
/* segmented signal filter (All / Buy Zone / Holding / Extended) */
.mkt-sigfilter{margin-left:auto;display:flex;gap:4px;background:rgba(var(--wc),.03);border:1px solid var(--border2);border-radius:22px;padding:3px;}
.mkt-sig-btn{border:none;background:transparent;color:var(--text2);font-size:11.5px;font-weight:700;font-family:inherit;padding:6px 13px;border-radius:18px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s;}
.mkt-sig-btn:hover{color:var(--text);}
.mkt-sig-btn.on{background:var(--gold);color:#0c1018;box-shadow:0 2px 10px rgba(245,158,11,.35);}
@media(max-width:600px){.mkt-sigfilter{margin-left:0;width:100%;justify-content:space-between;}.mkt-sig-btn{padding:6px 9px;flex:1;text-align:center;}}
.mkt-search{position:relative;flex:1;min-width:160px;}
.mkt-search input{width:100%;background:rgba(15,20,32,0.6);border:1px solid var(--border2);border-radius:20px;padding:8px 14px 8px 32px;font-size:12px;color:var(--text);outline:none;font-family:'Inter';}
.mkt-search input:focus{border-color:rgba(245,158,11,.5);}
/* autofill never paints a field white. Chrome repaints an autofilled input in its own light colours; the app's own colours win (owner, 23 Sep 2026: the Builder search went white as he typed). */
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,textarea:-webkit-autofill,select:-webkit-autofill{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface) inset;box-shadow:0 0 0 1000px var(--surface) inset;caret-color:var(--text);transition:background-color 600000s 0s;}
input:autofill{color:var(--text);background-color:var(--surface);}
.mkt-search .ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:12px;opacity:.6;}
.mkt-search input{padding-right:34px;}
.mkt-clear{display:none;position:absolute;right:6px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;border:none;background:rgba(var(--wc),.08);color:var(--text2);font-size:11px;cursor:pointer;align-items:center;justify-content:center;transition:.14s;padding:0;line-height:1;}
.mkt-clear:hover{background:var(--gold);color:#0a0a12;}

.mkt-card{border-radius:16px;overflow:hidden;}
.mkt-wrap{overflow-x:auto;}
/* mobile: fade the cut edge so a wider table reads as "swipe for more", not broken tabs */
/* Phone: the table never scrolls sideways. The column trim lives in the
   max-width:680px rule further down; this is the hard stop so an expanded
   row (chart + panels) can never push the Builder off the screen again. */
@media(max-width:700px){
  .mkt-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .mkt-wrap::-webkit-scrollbar{display:none;}
  table.mkt{min-width:0;}
  .mkt-expand td{display:table-cell;}
}
table.mkt{width:100%;border-collapse:collapse;min-width:740px;}
table.mkt thead{background:rgba(7,9,15,0.5);border-bottom:1px solid var(--glass-border);}
table.mkt th{padding:12px 14px;text-align:left;font-size:9.5px;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;cursor:pointer;user-select:none;transition:color .15s;}
table.mkt th:hover{color:var(--gold2);}
table.mkt th .ar{opacity:.4;font-size:8px;margin-left:3px;}
table.mkt th.sorted .ar{opacity:1;}
table.mkt th.right,table.mkt td.right{text-align:right;}
table.mkt tbody tr.mkt-row{border-bottom:1px solid rgba(var(--wc),0.07);cursor:pointer;transition:background .12s;}
table.mkt tbody tr.mkt-row:hover{background:rgba(var(--wc),0.045);}
table.mkt tbody tr.mkt-row.buyrow{background:rgba(34,160,107,0.04);}
table.mkt tbody tr.mkt-row.buyrow:hover{background:rgba(34,160,107,0.07);}
table.mkt td{padding:11px 14px;font-size:13px;vertical-align:middle;}
/* Phone: every row the same height, tighter rhythm, nothing ragged. */
@media(max-width:820px){
  table.mkt td{padding:9px 11px;}
  table.mkt th{padding:10px 11px;}
  .mkt-name{margin-top:2px;line-height:1.25;}
  table.mkt tbody tr.mkt-row td{height:56px;}
}
.mkt-sym{font-weight:800;color:var(--text);font-size:13.5px;display:inline-flex;align-items:center;gap:6px;}
.mkt-sym .exp{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.22);border-radius:5px;font-size:10px;color:rgba(245,158,11,.65);transition:transform .2s,color .2s,background .2s,border-color .2s;flex-shrink:0;}
.mkt-row:hover .mkt-sym .exp{color:var(--gold);background:rgba(245,158,11,.18);border-color:rgba(245,158,11,.4);}
.mkt-row.open .mkt-sym .exp{transform:rotate(90deg);color:var(--gold);background:rgba(245,158,11,.22);border-color:rgba(245,158,11,.5);}
table.mkt tbody tr.mkt-row:hover{background:rgba(var(--wc),.052);box-shadow:inset 3px 0 0 rgba(245,158,11,.5);}
.mkt-name{font-size:10.5px;color:var(--text3);margin-top:1px;}
.mkt-px{font-family:'DM Mono';font-size:12.5px;color:var(--text);}
.mkt-ema{font-family:'DM Mono';font-size:12px;color:var(--text2);}
.mkt-dist{font-family:'DM Mono';font-size:12.5px;font-weight:500;}
.mkt-struct{font-size:10px;font-weight:700;padding:3px 8px;border-radius:6px;white-space:nowrap;}
.mkt-struct.bull{background:var(--green-dim);color:var(--green);}
.mkt-struct.bear{background:var(--red-dim);color:var(--red);}
.mkt-sig{font-size:10px;font-weight:800;letter-spacing:.3px;padding:4px 10px;border-radius:20px;white-space:nowrap;}
.mkt-down{background:rgba(100,116,139,0.12);color:var(--text2);border:1px solid var(--border2);}
.mkt-weak{background:var(--orange-dim);color:var(--orange);border:1px solid rgba(227,83,54,0.30);}
.mkt-expand{background:rgba(7,9,15,0.45);}
.mkt-expand td{padding:0;}
.mkt-expand-inner{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch;}
@media(max-width:700px){.mkt-expand-inner{grid-template-columns:1fr;}}
.mkt-exp-left .mkt-exp-chart{flex:1;height:auto;min-height:280px;}
.mkt-exp-chart{height:280px;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:rgba(var(--wc),0.02);position:relative;}
.mkt-exp-chart .tradingview-widget-container,.mkt-exp-chart .tradingview-widget-container__widget,.mkt-exp-chart iframe{height:100%!important;width:100%!important;}
.mkt-exp-chart .minichart-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;}
.ema-legend{position:absolute;top:6px;left:8px;z-index:5;display:flex;gap:8px;pointer-events:none;background:rgba(7,7,15,0.75);border-radius:6px;padding:3px 8px;backdrop-filter:blur(4px);}
.ema-legend span{font-size:9px;font-weight:800;letter-spacing:.4px;display:flex;align-items:center;gap:3px;}
.ema-l50{color:#3568d4;}
.ema-l200{color:#e8ecf4;}
.mkt-exp-side{display:flex;flex-direction:column;gap:10px;}
.mkt-exp-note{font-size:12px;color:var(--text2);line-height:1.6;background:rgba(var(--wc),0.03);border:1px solid var(--border);border-radius:9px;padding:10px 12px;}
.mkt-exp-note b{color:var(--text);}
.men-h{display:block;font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--gold);margin-bottom:5px;}
.mkt-exp-levels .pb-scale-title{margin-bottom:8px;}

/* glance hero */
.glance{border-radius:16px;padding:14px 18px;margin-bottom:14px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.glance-note{flex:1;min-width:220px;font-size:14.5px;color:var(--text);line-height:1.6;}
.glance-note b{color:var(--gold);}
.glance-note-h{color:var(--gold);font-weight:800;font-size:11.5px;text-transform:uppercase;letter-spacing:.7px;margin-bottom:9px;}
.glance-bullets{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;}
.glance-bullets li{position:relative;font-size:12.5px;line-height:1.45;color:var(--text2);padding-left:0;}
.glance-bullets li::before{content:none;}
.glance-bullets > li[hidden]{display:none;}
.gb-sub{list-style:none;margin:7px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;}
.gb-sub li{position:relative;padding-left:13px;font-size:13px;line-height:1.6;color:var(--text2);}
.gb-sub li:before{content:'';position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:rgba(var(--wc),.28);}
.gb-tag{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--gold);background:var(--gold-dim);border:1px solid var(--gold-border);border-radius:5px;padding:1px 6px;margin-right:7px;vertical-align:1px;white-space:nowrap;}
.gb-more{margin-top:8px;background:none;border:1px solid var(--border);color:var(--text3);border-radius:7px;padding:5px 11px;font-size:11px;font-weight:700;font-family:inherit;cursor:pointer;transition:.15s;}
.gb-more:hover{color:var(--text);border-color:var(--gold-border);}
.gb-arr{font-size:9px;}
@media(max-width:700px){.glance-bullets li{font-size:12px;line-height:1.4;}}
.glance-side{display:flex;flex-direction:column;gap:9px;margin-left:auto;align-items:flex-end;}
.gs-delta{font-size:11px;color:var(--text2);letter-spacing:.01em;}
.gs-dlead{font-size:9.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#7c9cea;margin-right:5px;}
.gs-main{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end;}
.gs-r{cursor:pointer;transition:border-color .18s ease-out;text-align:center;line-height:1;background:rgba(var(--wc),.03);border:1px solid var(--border);border-radius:12px;padding:8px 16px;min-width:104px;}   /* a tile, lined up with the three stats beside it */
.gs-r b{display:block;font-family:'DM Mono';font-size:24px;font-weight:500;letter-spacing:-.5px;}
.gs-r b.up{color:var(--gold);}
.gs-r b.down{color:var(--red);}
.gs-r span{display:block;margin-top:5px;font-size:8.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--text3);}
.gs-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;font-size:10.5px;color:var(--text3);}
.gs-foot b{color:var(--text2);font-weight:700;}
/* The record curve: draw-on left to right, dot pop, label last. One hero
   moment, executed once, subsequent renders carry .no-anim so the ten-minute
   live poll never replays it. */
.gs-curve{width:100%;margin:2px 0 1px;}
.gs-curve svg{display:block;width:100%;height:auto;}
/* Names the window on the face of the chart, the figure is 6 months, not the
   all-time record, and the two are materially different numbers. */
/* The week rides under the 30-day headline, deliberately small: one stopped
   trade should never be the biggest number on the dashboard. */
.gs-wk{margin-top:3px;font-size:10.5px;font-weight:700;letter-spacing:.02em;color:rgba(var(--wc),.5);}
.gs-wk b{font-family:'DM Mono',monospace;font-size:11px;}
.gs-wk b.up{color:var(--green);} .gs-wk b.down{color:var(--red);}
.gs-wk span{color:rgba(var(--wc),.42);}
.gc-cap{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:3px;
  font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:rgba(var(--wc),.5);}
.gc-cap b{font-family:'DM Mono',monospace;font-size:10.5px;color:var(--gold);letter-spacing:0;text-transform:none;}
.gs-wl{font-size:.62em;font-weight:800;opacity:.75;margin-left:1px;}
.gs-loss{color:var(--red);}
.gs-be{color:var(--text3);}   /* break-even: neither a win nor a loss (14 Sep 2026) */
/* Slower, deliberate hero draw so the eye can follow it: grid settles first, the
   gold line climbs over ~2.6s with a glow that flares as it lands, the running
   +R total counts up alongside it (JS), then the dot pops at the summit. */
.gc-ticks{opacity:0;animation:gcFade .6s ease-out .3s forwards;}
.gc-area{opacity:0;animation:gcFade 1.1s ease-out 1.5s forwards;}
.gc-line{stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 0 rgba(245,158,11,0));animation:gcDraw 2.6s cubic-bezier(.33,.02,.15,1) .4s forwards, gcGlow 1.5s ease-out 2.5s forwards;}
.gc-lbl{opacity:0;animation:gcFade .55s ease-out .55s forwards;}
.gc-dot{opacity:0;transform-box:fill-box;transform-origin:center;animation:gcPop .5s cubic-bezier(.34,1.56,.64,1) 3s forwards;}
.gs-curve.no-anim .gc-area,.gs-curve.no-anim .gc-lbl,.gs-curve.no-anim .gc-ticks,.gs-curve.no-anim .gc-dot{animation:none;opacity:1;}
.gs-curve.no-anim .gc-line{animation:none;stroke-dashoffset:0;filter:none;}
@keyframes gcDraw{to{stroke-dashoffset:0;}}
@keyframes gcFade{to{opacity:1;}}
@keyframes gcGlow{0%{filter:drop-shadow(0 0 0 rgba(245,158,11,0));}45%{filter:drop-shadow(0 0 7px rgba(245,158,11,.55));}100%{filter:drop-shadow(0 0 2.5px rgba(245,158,11,.3));}}
@keyframes gcPop{0%{opacity:0;transform:scale(.4);}70%{opacity:1;transform:scale(1.35);}100%{opacity:1;transform:scale(1);}}
@media(prefers-reduced-motion:reduce){
  .gc-area,.gc-lbl,.gc-ticks,.gc-dot{animation:none;opacity:1;}
  .gc-line{animation:none;stroke-dashoffset:0;}
}
/* ---- One-time boot reveal ----------------------------------------------
   The app already deals in cards/rows (rbRise/rbFadeIn) and soft-fades panels
   (rbSoftIn) whenever a page activates. These add the two things it doesn't
   have yet: the tab bar rising in on load, and a single gold shimmer sweeping
   the Live Trigger Watch header. Both are scoped to #app.app-in, JS adds it
   once after the first render and strips it ~2.9s later, so re-renders and tab
   switches never replay them. Default (no class) state is fully visible, so if
   the class never lands nothing is hidden. */
@keyframes sectionRise{from{opacity:0;transform:translateY(15px);}to{opacity:1;transform:translateY(0);}}
@keyframes twSweep{0%{transform:translateX(-130%) skewX(-18deg);opacity:0;}12%{opacity:1;}100%{transform:translateX(360%) skewX(-18deg);opacity:0;}}
#app.app-in .tabs{animation:sectionRise .52s cubic-bezier(.2,.72,.28,1) .08s both;}
#app.app-in #trigger-watch .tw-head{position:relative;overflow:hidden;}
#app.app-in #trigger-watch .tw-head::after{
  content:"";position:absolute;top:0;bottom:0;left:0;width:36%;pointer-events:none;z-index:0;
  background:linear-gradient(100deg,transparent,rgba(245,158,11,.30),transparent);
  animation:twSweep 1.05s ease-out .5s 1 both;
}
@media(prefers-reduced-motion:reduce){
  #app.app-in .tabs{animation:none;opacity:1;transform:none;}
  #app.app-in #trigger-watch .tw-head::after{display:none;}
}
.gs-asym{display:flex;flex-direction:column;gap:3px;align-items:flex-end;}
.gs-asym{width:100%;}
.gs-asym .ga-row{width:100%;}
.gs-asym .ga-cap{text-align:right;}
.ga-row{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;align-items:center;gap:8px;}
.ga-track{display:block;height:7px;border-radius:4px;background:rgba(var(--wc),.06);overflow:hidden;}
.ga-track .ga-bar{display:block;max-width:100%;}
.ga-l{font-size:8.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--text3);width:52px;text-align:right;}
.ga-bar{display:inline-block;height:7px;border-radius:4px;}
.ga-bar.red{background:linear-gradient(90deg,rgba(201,59,59,.55),var(--red));}
.ga-bar.gold{background:linear-gradient(90deg,rgba(245,158,11,.45),var(--gold));}
.ga-v{font-family:'DM Mono';font-size:11px;font-weight:500;min-width:46px;text-align:right;}
.ga-v.red{color:var(--red);}
.ga-v.gold{color:var(--gold);}
.ga-cap{font-size:9.5px;color:var(--text3);margin-top:2px;}
@media(max-width:820px){
  .gs-asym{align-items:stretch;}
  .ga-row{justify-content:flex-start;}
  .ga-l{text-align:left;}
}
.gs-next{white-space:nowrap;}
.gs-board{white-space:nowrap;}
@media(max-width:820px){
  .glance{position:relative;gap:12px 14px;}
  /* the regime pill sits on the THIS WEEK heading line, top right, instead of
     taking a row of its own with nothing beside it */
  .glance > .regime{position:absolute;top:14px;right:16px;margin:0;}
  .glance-note{flex:1 1 100%;min-width:0;padding-right:96px;}
  .glance-side{align-items:stretch;margin-left:0;width:100%;}
  /* the banked block and the three stats share one row and fill it */
  .gs-main{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start;align-items:stretch;}
  .gs-main > .gs-r{flex:1 1 150px;display:flex;flex-direction:column;justify-content:center;}
  .gs-main .gstat{display:flex;flex-direction:column;justify-content:center;}
  .glance-stats{flex:1 1 300px;min-width:0;display:flex;gap:9px;}
  .gstat{flex:1 1 0;min-width:0;padding:8px 6px;}
  .gs-main > .gs-r{text-align:left;}
  /* the curve takes the full width below, never a squashed box beside the numbers */
  .glance-side .gs-curve{flex:0 0 100%;width:100%;margin:4px 0 0;}
  .gs-foot{justify-content:flex-start;}
  .glance-jump{align-self:stretch;justify-content:center;}
}
.glance-stats{display:flex;gap:9px;flex-wrap:wrap;}
/* Phone: the banked block is only ~123px wide inside a ~351px panel, leaving
   229px empty beside it while the curve sat stacked underneath. Put them on
   one row, the curve fills the gap and the panel loses a whole band of
   height. Everything below stays full width. */
@media(max-width:560px){
  .glance-side{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 10px;}
  /* 0 0 auto refused to shrink, so the R block plus the week sat 379px wide in
     a 375px viewport and pushed the whole card off the right edge. It has to be
     allowed to give way, and min-width:0 lets its grid children do the same. */
  .gs-main{flex:1 1 auto;min-width:0;justify-content:flex-start;gap:10px;}
  .gs-r{min-width:0;}
  .gs-r > b{min-width:0;}
  .gs-r > .gs-wk{min-width:0;}
  /* The 30-day figure is the headline and stays biggest. The week sat UNDER it,
     pushing the block to three lines and leaving the space to its right empty.
     Two columns instead: the headline and its label on the left, the week
     alongside behind a hairline, so the row reads as one clean line. */
  .gs-r{text-align:left;display:grid;grid-template-columns:auto auto;
        grid-template-rows:auto auto;column-gap:11px;align-items:end;}
  .gs-r > b{grid-column:1;grid-row:1;font-size:26px;}   /* direct child — .gs-wk b stays small */
  .gs-r > span{grid-column:1;grid-row:2;}
  .gs-r > .gs-wk{grid-column:2;grid-row:1 / span 2;align-self:center;margin-top:0;
        padding-left:11px;border-left:1px solid rgba(var(--wc),.12);line-height:1.3;white-space:nowrap;}
  .gs-curve{flex:1 1 96px;min-width:0;margin:0;}
  .gs-delta,.gs-asym,.gs-foot,.glance-jump,.glance-stats{flex:1 0 100%;}
  /* the four tiles as two even rows (11 Sep 2026): banked + live now, waiting + last 30 days */
  .glance .glance-side .glance-stats{display:contents;}
  .gs-main{gap:8px;}
  .gs-main > .gs-r,.gs-main .gstat{flex:1 1 42%;min-width:0;}
  .gs-main > .gs-r{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:8px 10px;}
  .gs-r > b{font-size:22px;}
  .gs-r > .gs-wk{border-left:0;padding-left:0;margin-top:4px;white-space:normal;}
}
/* ── THE SCOREBOARD, AT EVERY WIDTH (owner, 18 Sep 2026: "I think it's too big
   now ... I like the chart line and avg loss avg win better, maybe move that
   above ... so the user gets to the trade info easier", then, on seeing it on a
   phone: "carry it into all widths, it looks better and cleaner, that way we can
   condense the closed view of the This week part in all size viewpoints").
   Measured on a phone the old panel was 733px, nearly a whole screen: 346px of
   notes and 158px of stat tiles sitting ON TOP of the two things worth looking
   at, the curve (59px) and the averages (47px).
   The order is now: one headline figure with the week beside it, one quiet line
   of counts, the curve, the averages, the button down to the setups, and only
   then the week's notes, folded to their first group until "Show all" is
   tapped. The four tiles are gone as boxes, not as data: nothing was removed.
   A phone stacks it; from 821px the notes sit in a column to the right. */
.glance{position:relative;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:10px;}
.glance .glance-side{order:1;width:100%;margin:0;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:9px;}
.glance .glance-note{order:2;flex:0 0 auto;min-width:0;padding-right:0;padding-top:11px;border-top:1px solid rgba(var(--wc),.07);}
.glance > .regime{position:absolute;top:12px;right:14px;margin:0;}
/* the headline: the 30-day figure, its label beside it, the week underneath */
.glance .gs-main{display:block;order:1;}
.glance .gs-main > .gs-r{display:block;flex:none;background:none;border:0;border-radius:0;padding:0;text-align:left;min-width:0;}
.glance .gs-r > b{display:inline;font-size:30px;letter-spacing:-.8px;line-height:1;}
.glance .gs-r > span{display:inline-block;margin:0 0 0 8px;font-size:9.5px;max-width:calc(100% - 210px);vertical-align:baseline;}   /* the regime pill sits to its right */
/* live / waiting / last 30 days: one line of counts, not three boxes */
.glance .glance-side .glance-stats{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:7px;}
.glance .gstat{flex:0 0 auto;display:inline-flex;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:5px;background:none;border:0;border-radius:0;padding:0;min-width:0;text-align:left;}
.glance .gstat .n{font-size:13.5px;}
.glance .gstat .l{margin:0;font-size:9.5px;letter-spacing:.4px;}
/* then what the owner likes best, then the way down to the trades */
.glance .glance-side .gs-curve{order:2;flex:0 0 auto;width:100%;margin:2px 0 0;}
.glance .gs-asym{order:3;align-items:stretch;}
.glance .glance-jump{order:4;align-self:stretch;justify-content:center;flex:0 0 auto;}
.glance .gs-delta{order:5;flex:0 0 auto;}
.glance .gs-foot{order:6;flex:0 0 auto;justify-content:flex-start;}
@media(max-width:560px){ .glance{padding:13px 14px;} }
/* room to breathe: the scoreboard on the left, the week's notes beside it */
@media(min-width:821px){
  .glance{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);column-gap:28px;row-gap:0;align-items:start;padding:14px 22px;}   /* tight (owner, 9 Oct 2026: "tighten this gap up more sleeker") */
  .glance .glance-side{grid-column:1;grid-row:1;gap:8px;}
  /* the notes column is exactly as tall as the scoreboard: it shows as many notes as fit (applyNotesView) and its
     "Show all" sits on the bottom line, so neither column ends in an empty block */
  .glance .glance-note{grid-column:2;grid-row:1;align-self:stretch;border-top:0;padding-top:2px;border-left:1px solid rgba(var(--wc),.07);padding-left:26px;display:flex;flex-direction:column;}
  .glance .glance-note .gb-more{margin-top:auto;align-self:flex-start;}
  .glance .glance-note .gb-more-top{margin:0 0 0 12px;vertical-align:1px;padding:3px 9px;}
  .glance .glance-note .glance-bullets{margin-bottom:4px;}
  .glance .glance-note-h{display:inline-block;}               /* only as wide as its words: the regime pill shares this line, and nothing sits under it */
  .glance > .regime{top:18px;right:22px;}
  .glance .gs-r > b{font-size:40px;letter-spacing:-1.2px;}
  .glance .gs-r > span{font-size:10.5px;margin-left:11px;max-width:none;}
  .glance .glance-side .glance-stats{gap:2px 20px;margin-top:9px;}
  .glance .gstat .n{font-size:15px;}
  .glance .gstat .l{font-size:10px;}
  .glance .glance-jump{align-self:flex-start;padding:10px 26px;}
}
/* the week is the second headline figure, not a footnote (18 Sep 2026: the owner
   went looking for "the this week R bit" and could not find it at 12px grey) */
.glance .gs-r > .gs-wk{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 8px;margin-top:6px;padding:0;border:0;white-space:normal;
  font-size:9.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--text3);line-height:1.2;}
.glance .gs-r > .gs-wk b{order:-1;display:inline;margin:0;font-size:20px;letter-spacing:-.4px;line-height:1;text-transform:none;}
.glance .gs-r > .gs-wk b.flat{color:var(--text3);}
.glance .gs-r > .gs-wk span{display:inline;margin:0;font-size:10.5px;letter-spacing:.2px;text-transform:none;color:rgba(var(--wc),.5);}
/* the notes: status beside the market, market filter chips, live tickers */
.glance .glance-bullets > li[hidden]{display:none;}
/* folded: the first two lines of the first note; "Show all" opens every line of every note */
.glance .glance-bullets.is-collapsed .gb-sub > li:nth-child(n+3){display:none;}
.gb-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:5px;}
.gb-status{font-size:9.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--text3);border:1px solid var(--border);border-radius:6px;padding:2px 7px;}
.gb-status.new{color:var(--gold);border-color:var(--gold-border);background:var(--gold-dim);}
.gb-filters{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 10px;}
/* Every market chip on screen at every width (27 Sep 2026): a scrolling row hid Metals, Indices, Crypto and Squeeze
   behind a fade and the owner read it as broken. Compact chips wrap to at most two rows; check-tabs fails a hidden chip. */
.gb-filters::-webkit-scrollbar{display:none;}
.gb-f{flex:0 0 auto;background:rgba(var(--wc),.03);border:1px solid var(--border);color:var(--text2);border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700;font-family:inherit;cursor:pointer;transition:border-color .15s,color .15s,background .15s;-webkit-tap-highlight-color:transparent;}
.gb-f b{font-family:'DM Mono',monospace;font-weight:500;opacity:.65;margin-left:3px;}
.gb-f:hover{border-color:var(--gold-border);color:var(--text);}
.gb-f.on{background:var(--gold-dim);border-color:var(--gold-border);color:var(--gold);}
.gb-f:active{transform:scale(.97);}
.gb-tk{color:var(--text);font-weight:700;text-decoration:none;border-bottom:1px dotted rgba(var(--wc),.32);cursor:pointer;white-space:nowrap;}
.gb-tk:hover{color:var(--gold);border-bottom-color:var(--gold-border);}
.gb-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-left:5px;vertical-align:middle;}
.gb-dot.in{background:var(--green);} .gb-dot.wait{background:rgba(var(--wc),.32);}
.gb-st{font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;margin-left:6px;padding:1px 6px;border-radius:5px;vertical-align:1px;}
.gb-st.win{color:var(--green);background:var(--green-dim);border:1px solid var(--green-border);}
.gb-st.out{color:var(--red);background:var(--red-dim);border:1px solid var(--red-border);}
@media(min-width:821px){ .glance .gs-r > .gs-wk b{font-size:26px;letter-spacing:-.7px;} .glance .gs-r > .gs-wk{font-size:10.5px;margin-top:9px;} .glance .gs-r > .gs-wk span{font-size:11.5px;} }

.gstat.is-live .n{position:relative;}
.gdot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold);margin-right:5px;vertical-align:middle;animation:gdotPulse 2s ease-in-out 4;}
@keyframes gdotPulse{0%,100%{opacity:1;}50%{opacity:.35;}}
@media(prefers-reduced-motion:reduce){ .gdot{animation:none;} }
.gstat{text-align:center;background:rgba(var(--wc),.03);border:1px solid var(--border);border-radius:12px;padding:8px 14px;min-width:72px;}
.gstat .n{font-family:'DM Mono';font-size:20px;font-weight:500;line-height:1;}
.gstat .l{font-size:8.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);font-weight:700;margin-top:5px;}

/* search */
.searchbar{position:relative;margin-bottom:16px;}
.search-input{width:100%;background:rgba(15,20,32,0.6);border:1px solid var(--border2);border-radius:12px;padding:12px 16px 12px 40px;font-size:14px;color:var(--text);outline:none;font-family:'Inter';transition:border-color .2s,box-shadow .2s;}
.search-input:focus{border-color:rgba(245,158,11,.5);box-shadow:0 0 0 3px rgba(245,158,11,.07);}
.search-input::placeholder{color:var(--text3);}
.search-ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:14px;pointer-events:none;opacity:.6;}
.no-results{display:none;text-align:center;color:var(--text3);font-size:13px;padding:26px;}

/* DeM legend */
/* DeM legend as compact chips (13 Oct 2026, sleek pass): the same five bands, read at a glance, no boxed strip */
.legend{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--text2);margin-bottom:14px;}
.legend b{color:var(--text3);text-transform:uppercase;letter-spacing:.1em;font-size:9.5px;font-weight:800;margin-right:2px;}
.legend span{display:inline-flex;align-items:center;gap:6px;font-weight:600;padding:4px 10px;border:1px solid var(--border);border-radius:20px;background:rgba(var(--wc),.03);line-height:1.3;white-space:nowrap;}
.legend i{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none;}

/* THE GUIDE LIBRARY ON THE LANDING PAGE (19 Sep 2026). Owner: "we should show it off on
   our actual webpage before anyone signs up, it's added education for traders and
   investors now". A shelf of the real covers, scrolled sideways, nothing else. */
.lp-guides{padding:64px 0 60px;background:#070d17;overflow:hidden;}
.lp-guides-head{max-width:680px;margin:0 auto 30px;text-align:center;padding:0 24px;}
.lp-guides-h{font-size:clamp(26px,4vw,44px);font-weight:800;color:var(--text);letter-spacing:-1px;line-height:1.1;margin-bottom:12px;text-wrap:balance;}
.lp-guides-sub{font-size:15px;color:rgba(var(--wc),.6);line-height:1.6;max-width:600px;margin:0 auto;}
.lp-shelf{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:6px 24px 18px;}   /* edge to edge on every width (23 Sep 2026: it used to start at the centred column and leave a dead band on the left) */
.lp-shelf::-webkit-scrollbar{display:none;}
.lp-book{flex:0 0 min(78vw,330px);scroll-snap-align:center;margin:0;}
.lp-book img{display:block;width:100%;height:auto;aspect-ratio:3/2;border-radius:12px;border:1px solid rgba(var(--wc),.09);box-shadow:0 18px 40px -22px rgba(0,0,0,.8);background:#0a0e16;}
.lp-book figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:10px;padding:0 2px;text-align:left;}
.lp-book b{font-size:13.5px;font-weight:700;color:var(--text);letter-spacing:-.1px;line-height:1.3;}
.lp-book span{flex:0 0 auto;font-family:'DM Mono',monospace;font-size:10.5px;color:var(--text3);white-space:nowrap;}
.lp-guides-foot{max-width:680px;margin:22px auto 0;padding:0 24px;text-align:center;font-size:13.5px;line-height:1.6;color:rgba(var(--wc),.6);}
.lp-guides-foot a{color:var(--gold);font-weight:700;text-decoration:none;border-bottom:1px solid var(--gold-border);white-space:nowrap;}
.lp-guides-foot a:hover{border-bottom-color:var(--gold);}
/* the same covers inside the Desk */
.gd-cover{display:block;width:100%;height:auto;aspect-ratio:3/2;border-radius:10px;border:1px solid rgba(var(--wc),.08);background:#0a0e16;}
.gd-card .gd-cover{grid-column:1 / -1;margin-bottom:12px;}
.gd-next.has-cover{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;}   /* beats the flex column the plain card uses */
.gd-next-body{display:flex;flex-direction:column;gap:8px;min-width:0;}
@media(min-width:760px){ .gd-next.has-cover{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:22px;align-items:center;} }
@media(max-width:759px){ .gd-next .gd-cover{margin-bottom:6px;} }
/* ON A PHONE the Next up cover is a thumbnail beside the title, not a banner above it:
   full width it repeated the title straight under itself and pushed Open a screen down. */
@media(max-width:560px){
  .gd-next.has-cover{grid-template-columns:104px minmax(0,1fr);gap:4px 13px;align-items:start;}
  .gd-next.has-cover .gd-next-body{display:contents;}
  .gd-next.has-cover .gd-cover{grid-column:1;grid-row:1 / span 2;margin:2px 0 0;border-radius:8px;}
  .gd-next.has-cover .gd-next-k{grid-column:2;align-self:end;}
  .gd-next.has-cover .gd-next-t{grid-column:2;align-self:start;font-size:17.5px;}
  .gd-next.has-cover .gd-what,.gd-next.has-cover .gd-meta,.gd-next.has-cover .gd-ctas{grid-column:1 / -1;}
  .gd-next.has-cover .gd-what{margin-top:8px;}
}
/* a phone gets ONE cover, on the Next up card: eleven of them made the list five screens long */
@media(max-width:560px){ .gd-card .gd-cover{display:none;} }
/* a mouse cannot swipe: give it a slim scrollbar to grab, and fade the edge so the row reads as longer */
@media(hover:hover) and (pointer:fine){ .lp-shelf{scrollbar-width:thin;scrollbar-color:rgba(var(--wc),.18) transparent;padding-bottom:22px;} .lp-shelf::-webkit-scrollbar{display:block;height:6px;} .lp-shelf::-webkit-scrollbar-thumb{background:rgba(var(--wc),.16);border-radius:99px;} .lp-shelf::-webkit-scrollbar-track{background:transparent;} }
.lp-shelf{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 40px,#000 calc(100% - 40px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 40px,#000 calc(100% - 40px),transparent 100%);}
/* [hidden] always hides (3 Oct 2026): .free-bar and .ob set display:flex, which beat the attribute, so a MEMBER saw the free Desk banner and a finished checklist. */
[hidden]{display:none!important;}
/* HOME + GLASS PHONE BAR + SETUPS + MORE (3 Oct 2026, app sweep; the bar's glass follows the Journal home banner) */
/* the Today stack and the partner offers belong to Home; every other tab starts at its own content */
body:not([data-tab="home"]) #glance,body:not([data-tab="home"]) #following,body:not([data-tab="home"]) #ob,body:not([data-tab="home"]) #howto,body:not([data-tab="home"]) #trigger-watch,body:not([data-tab="home"]) .tools{display:none!important;}
.pp{padding:14px 16px 12px;border-radius:16px;margin:0 0 14px;border:1px solid rgba(var(--wc),.08);}
.pp-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 8px;} .pp-k{font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--gold);} .pp-d{font-size:12px;color:var(--text3);}
.pp-mood{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;font-size:13.5px;line-height:1.45;color:var(--text2);background:rgba(var(--wc),.03);border:1px solid rgba(var(--wc),.07);border-radius:10px;padding:9px 11px;margin:0 0 10px;cursor:pointer;transition:border-color .18s ease-out,transform .18s ease-out;}
.pp-mood svg{flex:none;width:18px;height:18px;color:var(--gold);} .pp-mood b{color:var(--text);} .pp-mood.on b{color:var(--green);} .pp-mood.off b{color:var(--red);} .pp-mood:hover{border-color:rgba(245,158,11,.4);} .pp-mood:active{transform:scale(.98);}
.pp-g{display:grid;grid-template-columns:1fr 1fr;gap:6px 22px;} .pp-sec{min-width:0;}
.pp-sh{display:flex;align-items:center;gap:7px;padding:8px 2px 5px;font-size:12px;color:var(--text3);border-bottom:1px solid rgba(var(--wc),.06);} .pp-sh svg{width:15px;height:15px;color:var(--gold);flex:none;} .pp-sh b{font-weight:700;color:var(--text2);letter-spacing:.2px;}
.pp-n{margin-left:auto;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--text3);background:rgba(var(--wc),.05);border-radius:999px;padding:1px 8px;}
.pp-row{display:flex;align-items:center;gap:10px;width:100%;min-width:0;text-align:left;font:inherit;font-size:13px;color:var(--text2);background:none;border:0;border-bottom:1px solid rgba(var(--wc),.05);padding:8px 2px;cursor:pointer;border-radius:6px;transition:background .15s ease-out;}
.pp-row:hover{background:rgba(var(--wc),.035);} .pp-row:active{transform:scale(.985);} .pp-row.past{opacity:.55;}
.pp-tk{flex:none;min-width:64px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:.2px;} .pp-t{min-width:44px;font-weight:700;color:var(--text2);}
.pp-m{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .pp-m small{font-size:12.5px;color:var(--text3);} .pp-m b{color:var(--text);font-weight:700;}
.pp-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--red);margin:0 7px 1px 0;vertical-align:middle;}
.pp-r{flex:none;font-style:normal;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--text3);} .pp-r.up{color:var(--green);} .pp-r.dn{color:var(--red);}
.pp-s{flex:none;font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--gold);}
.pp-c{flex:none;display:flex;color:var(--text3);opacity:.6;} .pp-c svg{width:14px;height:14px;} .pp-row:hover .pp-c{color:var(--gold);opacity:1;}
.pp-lock>svg{flex:none;width:15px;height:15px;color:var(--gold);} .pp-lock .pp-m{white-space:normal;}
.pp-none,.pp-more{font-size:12.5px;color:var(--text3);padding:9px 2px;line-height:1.45;} .pp-more{padding:6px 2px 2px;font-size:12px;}
@media(max-width:760px){ .pp{padding:12px 12px 10px;} .pp-g{grid-template-columns:1fr;gap:2px;} .pp-tk{min-width:56px;} .pp-mood{font-size:13px;} }
.home-brief{padding:4px 16px 8px;border-radius:16px;margin:0 0 14px;} .home-brief .mk-brief{margin:12px 0 6px;border:0;background:none;padding:6px 0 0;}
.home-go{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 16px;}
.home-go button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;font:inherit;cursor:pointer;padding:15px 16px;border-radius:14px;border:1px solid rgba(var(--wc),.08);background:rgba(var(--wc),.03);color:var(--text2);transition:border-color .18s ease-out,transform .18s ease-out;}
.home-go button:hover{border-color:rgba(245,158,11,.45);transform:translateY(-1px);} .home-go button:active{transform:scale(.97);}
.home-go .svgi{width:20px;height:20px;color:var(--gold);margin-bottom:4px;} .home-go b{font-size:14.5px;color:var(--text);} .home-go span{font-size:12px;color:var(--text3);line-height:1.4;}
.tab-x,.setups-sw{display:none;}
.more-sheet[hidden]{display:none;}
@media(max-width:900px){ .home-go{grid-template-columns:repeat(2,1fr);} }
@media(max-width:820px){
  /* six across: Home, Setups, Markets, Builder, Learn, More (owner, 12 Oct 2026) */
  .tabs{left:0!important;right:0!important;width:auto!important;max-width:none!important;bottom:0!important;grid-template-columns:repeat(6,1fr)!important;padding:7px 4px calc(7px + env(safe-area-inset-bottom))!important;border-radius:22px 22px 0 0!important;border-bottom:0!important;
    background:rgba(10,12,22,.72)!important;-webkit-backdrop-filter:blur(12px) saturate(180%)!important;backdrop-filter:blur(12px) saturate(180%)!important;
    border:1px solid rgba(255,255,255,.12)!important;box-shadow:0 18px 50px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.04),inset 0 1px 0 rgba(255,255,255,.09)!important;}
  .tabs::before{display:none!important;}
  .tabs .tab[data-tab="ema"],.tabs .tab[data-tab="forex"],.tabs .tab[data-tab="calls"],.tabs .tab[data-tab="squeeze"],.tabs .tab[data-tab="alerts"],.tabs .tab[data-tab="charts"],.tabs .tab[data-tab="perks"]{display:none!important;}
  /* owner, 12 Oct 2026: Builder is a main tab on the phone, Alerts lives in More */
  .tabs .tab[data-tab="home"]{order:1;} .tab-x#tx-setups{order:2;} .tabs .tab[data-tab="markets"]{order:3;} .tabs .tab[data-tab="portfolio"]{order:4;} .tabs .tab[data-tab="examples"]{order:5;} .tab-x#tx-more{order:6;}
  .tab .tab-ico,.tab-x .tab-ico{width:40px!important;}
  .tab-x{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 1px;border:0;background:none;font:inherit;cursor:pointer;color:rgba(var(--wc),.55);position:relative;}
  .tab-x .tab-ico{font-size:20px;line-height:1;margin-bottom:1px;} .tab-x-l{font-size:9.5px;font-weight:700;color:rgba(var(--wc),.5);}
  .tab::after{display:none!important;}
  .tab .tab-ico,.tab-x .tab-ico{width:44px;height:28px;display:grid;place-items:center;border-radius:12px;transition:background .2s ease-out;}
  .tab.on .tab-ico,.tab-x.on .tab-ico{background:rgba(245,158,11,.16);box-shadow:inset 0 0 0 1px rgba(245,158,11,.3);color:var(--gold);}
  .tab-x.on .tab-x-l{color:var(--gold);font-weight:800;}
  .tab-lbl::after{font-size:9.5px;}
  #app{padding-bottom:calc(96px + env(safe-area-inset-bottom));}
  .rbt-net{bottom:calc(100px + env(safe-area-inset-bottom,0px));}
  .dc-fab{bottom:calc(104px + env(safe-area-inset-bottom))!important;}
  /* the Setups switch sits at the top of Swing, Forex, Vol and Squeeze */
  body[data-tab="ema"] .setups-sw,body[data-tab="forex"] .setups-sw,body[data-tab="calls"] .setups-sw,body[data-tab="squeeze"] .setups-sw{display:grid;}
  .setups-sw{position:sticky;top:8px;z-index:40;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;margin:0 0 12px;border-radius:14px;
    background:rgba(10,12,22,.78);-webkit-backdrop-filter:blur(10px) saturate(170%);backdrop-filter:blur(10px) saturate(170%);border:1px solid rgba(255,255,255,.1);}
  .setups-sw button{font:inherit;font-size:13px;font-weight:700;padding:9px 4px;border:0;border-radius:10px;background:none;color:var(--text2);cursor:pointer;}
  .setups-sw button.on{background:rgba(245,158,11,.16);color:var(--gold);box-shadow:inset 0 0 0 1px rgba(245,158,11,.35);}
  body.free #tx-setups::before{content:'';position:absolute;top:1px;right:2px;width:13px;height:13px;border-radius:50%;background:linear-gradient(180deg,#FFD166,#F0A500);box-shadow:0 0 0 2px #0a0e16;}
  body.free #tx-setups::after{content:'';position:absolute;top:4px;right:5px;width:7px;height:7px;z-index:3;background:#1a1200;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='11' width='16' height='10' rx='2'/><path d='M8 11V7a4 4 0 0 1 8 0v4'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='11' width='16' height='10' rx='2'/><path d='M8 11V7a4 4 0 0 1 8 0v4'/></svg>") center/contain no-repeat;}
  /* More: a glass sheet over the bar */
  .more-sheet{position:fixed;inset:0;z-index:310;display:flex;align-items:flex-end;background:rgba(3,6,14,.5);}
  .more-card{width:100%;padding:10px 14px calc(16px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:rgba(10,12,22,.86);-webkit-backdrop-filter:blur(12px) saturate(180%);backdrop-filter:blur(12px) saturate(180%);
    border:1px solid rgba(255,255,255,.12);border-bottom:0;box-shadow:0 -18px 50px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.09);animation:upIn .25s cubic-bezier(.16,1,.3,1);}
  .more-grab{width:40px;height:4px;border-radius:4px;background:rgba(255,255,255,.2);margin:2px auto 12px;}
  .more-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .more-grid button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;font:inherit;padding:13px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);color:var(--text2);cursor:pointer;}
  .more-grid .svgi{width:20px;height:20px;color:var(--gold);margin-bottom:3px;} .more-grid b{font-size:14px;color:var(--text);} .more-grid span{font-size:11.5px;color:var(--text3);}
  .more-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;}
  .more-row button{display:flex;flex-direction:column;align-items:center;gap:5px;font:inherit;font-size:11.5px;font-weight:700;padding:10px 4px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:var(--text2);cursor:pointer;}
  .more-row .svgi{width:18px;height:18px;}
}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){ @media(max-width:820px){ .tabs,.more-card,.setups-sw{background:rgba(10,12,22,.97)!important;} } }
@media(max-width:820px){ html.theme-light .tabs{background:rgba(255,255,255,.72)!important;border-color:rgba(10,14,22,.1);} html.theme-light .more-card,html.theme-light .setups-sw{background:rgba(255,255,255,.86);border-color:rgba(10,14,22,.1);} }
/* UNIVERSAL SEARCH + FOLLOWING (3 Oct 2026, app sweep) */
.cp{position:fixed;inset:0;z-index:330;display:flex;align-items:flex-start;justify-content:center;padding:10vh 16px 16px;background:rgba(3,6,14,.6);}
.cp[hidden]{display:none;}
.cp-card{width:100%;max-width:620px;border-radius:18px;border:1px solid rgba(245,158,11,.3);overflow:hidden;animation:upIn .22s cubic-bezier(.16,1,.3,1);}
.cp-bar{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid rgba(var(--wc),.08);color:var(--text3);} .cp-bar svg{width:20px;height:20px;flex:none;}
.cp-bar input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--text);font:inherit;font-size:17px;}
.cp kbd{font-family:'DM Mono',monospace;font-size:10.5px;padding:2px 6px;border-radius:5px;border:1px solid rgba(var(--wc),.15);color:var(--text3);margin-right:3px;}
.cp-list{max-height:min(420px,55vh);overflow-y:auto;padding:6px;}
.cp-it{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;text-align:left;background:none;border:0;border-radius:10px;padding:10px 12px;font:inherit;cursor:pointer;color:var(--text2);}
.cp-it.on{background:rgba(245,158,11,.1);}
.cp-k{font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--text3);} .cp-trade{color:#3fd894;} .cp-markets{color:var(--gold);} .cp-guide{color:#8fb3e8;} .cp-lookup{color:#FF8559;}
.cp-l{font-size:14.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} .cp-s{font-size:12px;color:var(--text3);white-space:nowrap;}
.cp-empty{padding:22px;text-align:center;color:var(--text3);font-size:13.5px;}
.cp-foot{display:flex;gap:16px;padding:10px 16px;border-top:1px solid rgba(var(--wc),.08);font-size:11.5px;color:var(--text3);}
@media(max-width:600px){ .cp{padding:calc(12px + env(safe-area-inset-top,0px)) 10px 12px;} .cp-list{max-height:calc(100dvh - 200px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));} .cp-it{grid-template-columns:54px minmax(0,1fr);grid-template-rows:auto auto;row-gap:1px;column-gap:10px;padding:9px 10px;} .cp-k{grid-row:1 / span 2;align-self:center;font-size:9.5px;} .cp-l{grid-column:2;font-size:15px;} .cp-s{grid-column:2;font-size:12px;overflow:hidden;text-overflow:ellipsis;} .cp-foot{display:none;} }   /* phone (7 Oct 2026): label and sub stack tight, the type sits beside both, the card clears the notch */
.fw-chip.on-board{border-color:rgba(47,174,122,.45);}
.fw-st{margin-left:6px;font-size:9.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:2px 6px;border-radius:999px;} .fw-live{color:#3fd894;background:rgba(47,174,122,.12);} .fw-wait{color:var(--gold);background:rgba(245,158,11,.12);}
.fw-x svg{width:11px;height:11px;vertical-align:-1px;} .fw-head .svgi{width:14px;height:14px;color:var(--gold);vertical-align:-2px;}
/* THE DESK COACH (3 Oct 2026) */
/* BACK TO TOP (owner, 4 Oct 2026: "only when I want it"): appears after two screens of scrolling, bottom-left, away from the
   Coach button and the tab bar. Tapping the tab you are already on does the same, the way phone apps do. */
.jump-trades{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin:0 0 12px;padding:9px 14px;border-radius:12px;border:1px solid rgba(240,165,0,.30);background:rgba(240,165,0,.06);color:var(--gold);font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s ease-out;}
.jump-trades:hover{background:rgba(240,165,0,.11);} .jump-trades:active{transform:scale(.98);} .jump-trades .svgi{width:15px;height:15px;}
body.free .jump-trades{display:none;}
html.theme-light .to-top{background:rgba(255,255,255,.92);color:var(--text);border-color:rgba(24,28,38,.14);box-shadow:0 8px 24px rgba(20,24,40,.14);}
.to-top{position:fixed;left:18px;bottom:22px;z-index:59;display:inline-flex;align-items:center;gap:6px;padding:9px 14px 9px 11px;border-radius:999px;border:1px solid rgba(var(--wc),.12);background:rgba(10,13,22,.78);color:var(--text);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 10px 30px rgba(0,0,0,.45);opacity:0;transform:translateY(10px);transition:opacity .2s ease-out,transform .2s ease-out;}
.to-top.show{opacity:1;transform:none;} .to-top .svgi{width:15px;height:15px;transform:rotate(180deg);color:var(--gold);} .to-top:active{transform:scale(.96);}
@media(max-width:820px){ .to-top{bottom:calc(104px + env(safe-area-inset-bottom));left:14px;} }
.dc-fab{position:fixed;right:18px;bottom:22px;z-index:60;display:inline-flex;align-items:center;gap:8px;padding:12px 16px 12px 14px;border:0;border-radius:999px;cursor:pointer;font:inherit;font-size:14px;font-weight:800;color:#1a1200;background:linear-gradient(180deg,#FFD166,#F0A500);box-shadow:0 10px 30px rgba(240,165,0,.35),0 0 0 1px rgba(255,209,102,.4);transition:transform .18s ease-out;}
.dc-fab:hover{transform:translateY(-2px);} .dc-fab:active{transform:scale(.97);} .dc-fab svg{width:20px;height:20px;}
#login:not([style*="none"]) ~ * .dc-fab{display:none;}
/* SAFE SPACE (15 Oct 2026): the page ends clear of the floating Coach and Top buttons, so the last card's actions are
   never under them; Perks is all actions down its right edge, so the Coach steps aside there, as it does on Charts */
@media(min-width:821px){ body:not([data-tab="charts"]) #app{padding-bottom:104px;} }
@media(max-width:820px){ body:not([data-tab="charts"]) #app{padding-bottom:calc(150px + env(safe-area-inset-bottom))!important;} }
body[data-tab="perks"] .dc-fab{display:none!important}
/* NEVER ON AN ACTION (15 Oct 2026, owner: "nothing overlaps, at any screen size"): the Coach and Top buttons fade while the page
   scrolls and come back when it stops, and only where no button, link or field is underneath; otherwise they step aside,
   as the Coach does on Charts and Perks, until the next scroll clears the spot. js: FLOATING BUTTONS STEP ASIDE */
.dc-fab,.to-top{transition:opacity .18s ease-out,transform .18s ease-out,visibility 0s linear 0s;}
body.fab-scroll .dc-fab,body.fab-scroll .to-top,.dc-fab.fab-aside,.to-top.fab-aside{opacity:0!important;visibility:hidden;pointer-events:none;transform:scale(.86)!important;transition:opacity .15s ease-out,transform .15s ease-out,visibility 0s linear .15s;}
.dc-sheet{position:fixed;inset:0;z-index:320;display:flex;align-items:flex-end;justify-content:flex-end;padding:18px;background:rgba(3,6,14,.55);}
.dc-sheet[hidden]{display:none;}
.dc-card{width:100%;max-width:420px;height:min(640px,calc(100dvh - 36px));display:flex;flex-direction:column;border-radius:20px;border:1px solid rgba(245,158,11,.3);overflow:hidden;animation:upIn .25s cubic-bezier(.16,1,.3,1);}
.dc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 18px;border-bottom:1px solid rgba(var(--wc),.08);}
.dc-k{font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--gold);} .dc-h{font-family:var(--serif);font-size:21px;color:var(--text);margin-top:3px;line-height:1.2;}
.dc-x{background:none;border:0;color:var(--text3);font-size:24px;cursor:pointer;line-height:1;}
.dc-log{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px;}
.dc-soon{margin:auto 0;text-align:center;padding:26px 18px;border-radius:16px;border:1px solid rgba(240,165,0,.25);background:linear-gradient(180deg,rgba(240,165,0,.08),rgba(255,255,255,.02));}
.dc-soon .svgi{width:30px;height:30px;color:var(--gold);margin-bottom:10px;}
.dc-soon b{display:block;font-size:17px;color:var(--text);margin-bottom:8px;letter-spacing:-.01em;}
.dc-soon p{font-size:13.5px;line-height:1.55;color:var(--text2);margin:0 auto 8px;max-width:320px;}
.dc-m{max-width:88%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.55;}
.dc-m p{margin:0 0 6px;} .dc-m p:last-child{margin:0;}
.dc-m.a{align-self:flex-start;background:rgba(var(--wc),.05);border:1px solid rgba(var(--wc),.07);color:var(--text);border-bottom-left-radius:4px;}
.dc-m.u{align-self:flex-end;background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.3);color:var(--text);border-bottom-right-radius:4px;}
.dc-m.err{border-color:rgba(210,81,79,.35);}
.dc-typing{display:flex;gap:4px;} .dc-typing i{width:7px;height:7px;border-radius:50%;background:var(--text3);animation:dcDot 1s infinite ease-in-out;} .dc-typing i:nth-child(2){animation-delay:.15s;} .dc-typing i:nth-child(3){animation-delay:.3s;}
@keyframes dcDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.dc-chips{display:flex;flex-direction:column;gap:6px;padding:0 16px 10px;}
.dc-chip{text-align:left;font:inherit;font-size:13px;color:var(--text2);background:rgba(var(--wc),.03);border:1px solid rgba(var(--wc),.1);border-radius:10px;padding:9px 12px;cursor:pointer;}
.dc-chip:hover{border-color:rgba(245,158,11,.45);color:var(--text);}
.dc-form{display:flex;gap:8px;padding:12px 14px;border-top:1px solid rgba(var(--wc),.08);}
.dc-form input{flex:1;min-width:0;background:rgba(var(--wc),.05);border:1px solid rgba(var(--wc),.12);border-radius:12px;color:var(--text);font:inherit;font-size:16px;padding:11px 13px;outline:none;}
.dc-form input:focus{border-color:rgba(245,158,11,.55);}
.dc-form button{flex:none;width:46px;border:0;border-radius:12px;background:linear-gradient(180deg,#FFD166,#F0A500);color:#1a1200;cursor:pointer;display:grid;place-items:center;} .dc-form button svg{width:20px;height:20px;}
.dc-foot{padding:0 16px 12px;font-size:11.5px;color:var(--text3);} .dc-foot a{color:var(--gold);font-weight:700;text-decoration:none;}
@media(max-width:820px){ .dc-fab{bottom:calc(84px + env(safe-area-inset-bottom));right:14px;padding:11px;} .dc-fab span{display:none;} .dc-sheet{padding:0;align-items:flex-end;} .dc-card{max-width:none;height:min(86dvh,700px);border-radius:20px 20px 0 0;} }
/* MARKET ALERTS + TRADE GUARD (3 Oct 2026) */
.ma-card{margin-top:12px;}
.ma-sub{font-size:12.5px;color:var(--text3);line-height:1.5;margin:2px 0 10px;}
.ma-load{font-size:13px;color:var(--text3);padding:10px 0;}
.ma-row{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid rgba(var(--wc),.06);}
.ma-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(245,158,11,.1);color:var(--gold);}
.ma-ic svg{width:18px;height:18px;}
.ma-t b{display:block;font-size:14px;color:var(--text);} .ma-t>span{display:block;font-size:12.5px;color:var(--text3);line-height:1.45;margin-top:2px;}
.ma-sw{display:flex;gap:6px;} .ma-sw .al-chip{min-width:64px;justify-content:center;}
.ma-ccy{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:8px;} .ma-ccy span{font-size:11px;color:var(--text3);margin-left:4px;}
.ma-cc{font:inherit;font-size:11px;font-weight:700;padding:4px 8px;border-radius:7px;border:1px solid rgba(var(--wc),.12);background:rgba(var(--wc),.03);color:var(--text2);cursor:pointer;}
.ma-cc.on{border-color:rgba(245,158,11,.6);color:var(--gold);background:rgba(245,158,11,.1);}
/* ── SWING LANES (4 Oct 2026) ── */
.sw-near{margin:0 0 14px;padding:14px 16px;border-radius:16px;border:1px solid rgba(245,158,11,.32);background:linear-gradient(180deg,rgba(245,158,11,.07),rgba(245,158,11,.02));}
.sw-nh{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-bottom:10px;}
.sw-nk{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--gold);}
.sw-nk i{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(245,158,11,.18);animation:pulse 2s 4;}
.sw-ns{font-size:12.5px;color:var(--text3);}
.sw-nc{display:flex;flex-wrap:wrap;gap:8px;}
.sw-chip{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 8px 8px 14px;border-radius:12px;cursor:pointer;font:inherit;text-align:left;
  border:1px solid rgba(245,158,11,.45);background:rgba(10,12,20,.55);color:var(--text2);transition:border-color .18s ease-out,background .18s ease-out,transform .18s ease-out;}
.sw-chip b{color:var(--text);font-size:14px;} .sw-chip span{font-size:12.5px;}
.sw-chip em{display:inline-flex;align-items:center;gap:4px;font-style:normal;font-size:12px;font-weight:800;color:#120d00;background:var(--gold);padding:6px 10px;border-radius:9px;}
.sw-chip em .svgi{transform:rotate(-90deg);width:14px;height:14px;}
.sw-chip:hover{background:rgba(245,158,11,.1);transform:translateY(-1px);} .sw-chip:active{transform:scale(.97);}
.sw-nn{font-size:13px;color:var(--text3);}
.sw-lanes{display:flex;flex-direction:column;gap:12px;margin-bottom:14px;}
.sw-lane{border-radius:16px;border:1px solid rgba(var(--wc),.08);background:rgba(var(--wc),.02);overflow:hidden;}
.sw-lh{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:10px 14px;border:0;background:rgba(var(--wc),.025);font:inherit;color:var(--text);cursor:pointer;text-align:left;transition:background .18s ease-out;}
.sw-lh:hover{background:rgba(var(--wc),.05);}
.sw-ld{width:10px;height:10px;border-radius:50%;flex:none;} .sw-ld.live{background:var(--gold);box-shadow:0 0 0 4px rgba(245,158,11,.18);} .sw-ld.ready{background:#7FA7D9;} .sw-ld.watch{background:rgba(var(--wc),.35);} .sw-ld.closed{background:#2fae7a;}
.sw-lt{display:flex;flex-direction:column;min-width:0;} .sw-lt b{font-size:15.5px;} .sw-lt small{font-size:12px;color:var(--text3);}
.sw-ln{font-style:normal;font-weight:800;font-size:13px;padding:2px 9px;border-radius:999px;background:rgba(var(--wc),.07);color:var(--text2);margin-left:auto;}
.sw-tog{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;color:var(--gold);padding:7px 10px;border-radius:9px;border:1px solid rgba(245,158,11,.35);white-space:nowrap;}
.sw-tog .svgi{width:14px;height:14px;transition:transform .2s ease-out;} .sw-lh[aria-expanded="true"] .sw-tog .svgi{transform:rotate(180deg);}
.sw-lb{display:flex;flex-direction:column;}
/* ONE BOARD TEMPLATE (15 Oct 2026, owner: "all the trade ideas as high as possible under the explanations so each page feels
   similar"). Every board tab: .bt title row (name, Week of, one line, a remembered "How this board works" fold), then the
   .sw-lane trade groups, then .bd-tools with the board's supporting tools. Learn and Alerts carry the same title row. */
.bt{margin:2px 0 12px;}
.bt-top{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;}
.bt-h,.mk-h,#page-perks .pk-h{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.8vw,34px);line-height:1.08;letter-spacing:-.015em;color:var(--text);}
.bt-h{margin:0;}
.bt-wk{font-size:11.5px;font-weight:600;color:var(--text2);border:1px solid var(--border);background:rgba(var(--wc),.03);border-radius:20px;padding:4px 11px;white-space:nowrap;}
.bt-wk:empty{display:none;}
.bt-top #pb-live{margin-left:auto!important;}
.bt-sub{font-size:13.5px;color:var(--text2);line-height:1.55;margin:5px 0 0;max-width:760px;}
.bt-how{margin-top:4px;}
.bt-how>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:700;color:var(--gold);padding:4px 0;transition:opacity .18s ease-out;}
.bt-how>summary::-webkit-details-marker{display:none;}
.bt-how>summary:hover{opacity:.8;} .bt-how>summary:active{transform:scale(.97);}
.bt-how>summary .svgi{width:13px;height:13px;transform:rotate(-90deg);transition:transform .2s ease-out;}
.bt-how[open]>summary .svgi{transform:rotate(0deg);}
.bt-how-b{margin-top:6px;border:1px solid var(--border);background:rgba(var(--wc),.022);border-radius:14px;padding:14px 16px;}
.bt-how-b>.legend{margin:0 0 10px;}
.bt-badges{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12px;font-weight:700;color:var(--text2);background:none;border:1px solid var(--border);border-radius:9px;padding:6px 11px;cursor:pointer;}
.bt-badges:hover{color:var(--text);} .bt-badges .svgi{width:14px;height:14px;color:var(--gold);}
.bt-how .how{margin:12px 0 0;border:0;background:none;box-shadow:none;border-radius:0;overflow:visible;-webkit-backdrop-filter:none;backdrop-filter:none;}
.bt-how .how-toggle{display:none;}
.bt-how .how-body{display:block;padding:0;}
.bt-how .crit{margin-bottom:0;}
.bt-how .mw-noalert{margin:0 0 12px;}
.bd-tools{margin-top:16px;padding-top:12px;border-top:1px solid var(--border);}
.bd-tools-h{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--text3);margin:0 0 10px;}
.sw-lb>.pb-holds{margin:0;border:0;border-radius:0;}
.sw-lb>.mw-arch-m{margin:12px 14px 6px;}
.mw-tally{font-family:'DM Mono',monospace;font-size:13px;font-weight:600;margin-left:auto;} .mw-tally.up{color:var(--green);} .mw-tally.down{color:var(--red);}
.mw-tally+.sw-ln{margin-left:0;}
@media(max-width:600px){.bt{margin-bottom:10px;}.bt-sub{font-size:13px;}.bt-how-b{padding:12px 13px;}}
/* the holds sit in their lane on a phone: the lane header names them, so the kicker and pill step back and the two links share a row */
@media(max-width:700px){.sw-lb>.pb-holds{padding:12px 13px;}.sw-lb>.pb-holds .pbh-head{margin-bottom:10px;gap:8px;}.sw-lb>.pb-holds .pbh-lead>.pbh-k,.sw-lb>.pb-holds .pbh-pill{display:none;}.sw-lb>.pb-holds .pbh-h{font-size:15.5px;margin-bottom:2px;}.sw-lb>.pb-holds .pbh-meta{margin-top:2px;}.sw-lb>.pb-holds .pbh-ctl{flex-wrap:nowrap;}.sw-lb>.pb-holds .pbh-ctl>*{flex:1 1 0;justify-content:center;text-align:center;min-height:34px;}}
.sw-item{border-top:1px solid rgba(var(--wc),.06);}
.sw-r.sw-r-win{color:var(--green);}.sw-r.sw-r-loss{color:var(--red);}
.sw-sum{display:grid;grid-template-columns:minmax(92px,1.1fr) minmax(104px,1fr) minmax(0,2.3fr) minmax(140px,1.6fr) 64px 62px auto;gap:12px;align-items:center;width:100%;min-height:58px;padding:10px 14px;
  border:0;background:none;font:inherit;color:var(--text2);cursor:pointer;text-align:left;transition:background .18s ease-out;}
.sw-sum:hover{background:rgba(245,158,11,.05);} .sw-sum:active{transform:scale(.995);}
.sw-sum:focus-visible,.sw-lh:focus-visible,.sw-chip:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;}
.sw-tk{display:flex;flex-direction:column;min-width:0;} .sw-tk b{font-size:16px;color:var(--text);letter-spacing:-.01em;} .sw-tk small{font-size:11.5px;color:var(--text3);}
.sw-st{justify-self:start;font-size:12px;font-weight:800;padding:5px 10px;border-radius:999px;white-space:nowrap;border:1px solid;}
.sw-st.live{color:var(--gold);border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.1);} .sw-st.ready{color:#9CC0EA;border-color:rgba(127,167,217,.45);background:rgba(127,167,217,.1);}
.sw-st.watch{color:var(--text2);border-color:rgba(var(--wc),.16);} .sw-st.win{color:#5fd3a2;border-color:rgba(47,174,122,.45);background:rgba(47,174,122,.1);} .sw-st.loss{color:#ff8a87;border-color:rgba(210,81,79,.45);background:rgba(210,81,79,.1);}
.sw-lv{display:block;font-family:'DM Mono',monospace;font-size:13px;color:var(--text);min-width:0;container-type:inline-size;}
/* one layout per row width, whatever the number lengths (owner, 9 Oct 2026): the levels sit on one line when the cell
   holds the longest set, and ALL stack once it is narrower; never a mix of the two */
.sw-lvi{display:flex;flex-wrap:nowrap;gap:4px 14px;white-space:nowrap;}
@media(min-width:761px){ @container (max-width:340px){ .sw-lvi{flex-direction:column;gap:1px;} } } .sw-lv i{font-style:normal;font-family:inherit;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);margin-right:5px;}
.sw-lv-none{font-family:inherit;font-size:12.5px;color:var(--text3);}
.sw-r{font-family:'DM Mono',monospace;font-size:13px;font-weight:700;color:#5fd3a2;text-align:right;}
/* live R on an open trade (9 Oct 2026): chip + distance to target, a slim stop -> entry -> target bar under it */
.sw-fl{display:flex;flex-direction:column;gap:6px;min-width:0;overflow:hidden;container-type:inline-size;font-family:'DM Mono',monospace;font-variant-numeric:tabular-nums;}
.fl-t .t-m,.fl-t .t-s{display:none;}
@container (max-width:229px){ .fl-t .t-f,.fl-t.t-f{display:none;} .fl-t .t-m{display:inline;} }
@container (max-width:169px){ .fl-t .t-m{display:none;} .fl-t .t-s{display:inline;} }
.fl-l{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 8px;min-width:0;}
.fl-r{font-size:12.5px;font-weight:700;padding:2px 7px;border-radius:6px;border:1px solid;white-space:nowrap;}
.fl-r.up{color:#5fb98a;border-color:rgba(44,95,52,.7);background:rgba(44,95,52,.22);} .fl-r.dn{color:#e07a72;border-color:rgba(178,34,34,.55);background:rgba(178,34,34,.16);} .fl-r.flat{color:var(--text2);border-color:rgba(var(--wc),.14);background:rgba(var(--wc),.04);}
.fl-t{font-size:11.5px;color:var(--text3);white-space:nowrap;}
.fl-tag{font-style:normal;font-family:inherit;font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--text3);padding:1px 6px;border-radius:5px;border:1px solid rgba(var(--wc),.12);white-space:nowrap;}
.fl-l.stale .fl-r{opacity:.75;}
/* the price's own age (16 Oct 2026, js/price-age.js): free feeds, so every live price says how old it is */
.fl-age{font-style:normal;font-family:inherit;font-size:10px;color:var(--text3);white-space:nowrap;}
@container (max-width:169px){ .fl-age{display:none;} }
.tw-age{display:block;margin-top:3px;font-size:10px;color:rgba(var(--wc),.4);font-family:'DM Mono',ui-monospace,monospace;}
.fl-bar{position:relative;display:block;height:4px;margin:0 5px;border-radius:3px;background:rgba(var(--wc),.10);max-width:220px;}   /* inset so the price marker at 0% or 100% stays inside the cell */
.fl-bar i{position:absolute;display:block;}
.fl-fill{top:0;bottom:0;border-radius:3px;} .fl-fill.up{background:rgba(44,95,52,.85);} .fl-fill.dn{background:rgba(178,34,34,.7);} .fl-fill.flat{background:rgba(var(--wc),.25);}
.fl-e{top:-3px;width:1px;height:10px;background:rgba(var(--wc),.45);}
.fl-p{top:-3px;width:8px;height:10px;margin-left:-4px;border-radius:3px;background:var(--text);box-shadow:0 0 0 2px var(--bg,#07070f);} .fl-p.flat{background:var(--text3);}
html.theme-light .fl-r.up{color:#1f5a33;} html.theme-light .fl-r.dn{color:#9b1f1f;}
body.free .sw-fl{display:none!important;}
.sw-dm{display:inline-flex;align-items:center;gap:6px;font-family:'DM Mono',monospace;font-size:12.5px;color:var(--text2);} .sw-dm i{width:8px;height:8px;border-radius:50%;}
.sw-dm.sw-dm-na{font-family:inherit;font-size:11px;color:var(--text3);white-space:nowrap;}
.demw-na .demna{font-size:11.5px;color:var(--text3);white-space:nowrap;}
.sw-go{display:inline-flex;align-items:center;gap:6px;justify-self:end;padding:8px 12px;border-radius:10px;border:1px solid rgba(245,158,11,.4);background:rgba(245,158,11,.08);color:var(--gold);font-size:12.5px;font-weight:800;white-space:nowrap;transition:background .18s ease-out;}
.sw-sum > .sw-go{grid-column:-2/-1;}   /* squeeze rows have no DeMarker cell: the button keeps the last column, never on top of the R (5 Oct 2026) */
.sw-go-t::before{content:'Show plan';} .sw-item.open .sw-go-t::before{content:'Hide';}
.sw-go .svgi{width:15px;height:15px;transition:transform .2s ease-out;} .sw-item.open .sw-go .svgi{transform:rotate(180deg);}
.sw-sum:hover .sw-go{background:rgba(245,158,11,.18);}
.sw-item.open{background:rgba(var(--wc),.02);} .sw-item.open .sw-sum{background:rgba(245,158,11,.06);}
.sw-hit{display:flex;align-items:center;gap:8px;margin:10px 4px 0;padding:8px 12px;border:1px solid var(--border);border-radius:10px;font-size:12.5px;color:var(--text2);line-height:1.45;} .sw-hit .svgi{width:15px;height:15px;flex:none;color:var(--gold);} .sw-hit.sw-cancel{margin-top:6px;} .sw-hit.sw-cancel .svgi{color:var(--text3);} .sw-cancel b{color:var(--text);font-weight:700;}
/* THE UPDATE LOG AND THE POST-MORTEM (18 Oct 2026, js/trade-why.js). Members only. */
.tw-auto{font-style:normal;font-size:8.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);border:1px solid var(--border);border-radius:5px;padding:1px 5px;margin-left:3px;vertical-align:1px;white-space:nowrap;}
.tw-log{margin:6px 4px 0;padding:8px 12px;border:1px solid var(--border);border-radius:10px;font-size:12.5px;line-height:1.45;}
.tw-lh{font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin-bottom:5px;}
.tw-log ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;}
.tw-log li{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;color:var(--text2);}
.tw-log li b{font-family:'DM Mono',monospace;font-weight:500;font-size:11.5px;color:var(--text3);font-variant-numeric:tabular-nums;}
.tw-none{margin:0;color:var(--text3);}
.sw-hit.tw-pm .svgi{color:var(--text3);} .tw-pm b{color:var(--text);font-weight:700;}
.fl-pm{font-family:Inter,system-ui,sans-serif;font-size:11.5px;line-height:1.35;color:var(--text2);white-space:normal;}
@media(max-width:560px){ .tw-log li{grid-template-columns:74px minmax(0,1fr);} }
/* THE PLAN IN BRIEF (owner, 19 Oct 2026: "make all this sleeker"): one block, Trend / Momentum / Risk / Trigger and a
   Watching line only when the calendar holds something. It replaces the Why / What kills it / Watching lines, the
   "Why it fired" readout and the checklist under the chart, which said the same things three times. Two columns once
   the plan is wide, so a 1900px screen has no empty half; one column on a phone. */
.pib{margin:8px 4px 0;padding:7px 12px 6px;border:1px solid var(--border);border-radius:10px;background:rgba(var(--wc),.015);container-type:inline-size;}
.pib-h{font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:2px;}
.pib-g{display:grid;grid-template-columns:minmax(0,1fr);column-gap:28px;}
@container (min-width:820px){ .pib-g{grid-template-columns:repeat(2,minmax(0,1fr));} .pib-why,.pib-watch{grid-column:1/-1;} }
.pib-r{display:grid;grid-template-columns:14px 72px minmax(0,1fr);align-items:baseline;gap:8px;padding:4px 0;min-width:0;font-size:12.5px;line-height:1.45;}
.pib-r>.svgi,.pib-dot{width:13px;height:13px;align-self:center;color:var(--text3);}
.pib-dot{display:block;width:6px;height:6px;border-radius:50%;background:var(--text3);margin:0 auto;}
.pib-r.is-ok>.svgi{color:var(--green);} .pib-r.is-off>.svgi{color:var(--orange);} .pib-r.is-ev>.svgi{color:var(--gold);}
.pib-k{font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);white-space:nowrap;}
.pib-v{min-width:0;color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;}
.pib-d{font-weight:400;color:var(--text2);}
.pib-watch .pib-v{font-weight:400;color:var(--text2);}
/* a phone: the label sits on top of its line, so the line itself gets the whole width */
@container (max-width:519px){ .pib-r{grid-template-columns:14px minmax(0,1fr);row-gap:1px;column-gap:9px;padding:5px 0;} .pib-r>.svgi,.pib-r>.pib-dot{grid-row:1/span 2;align-self:start;margin-top:2px;} .pib-k{grid-column:2;font-size:9px;} .pib-v{grid-column:2;} }
/* the gold dot on the chart is the trigger candle; this one line under the chart names it */
.tc-leg{display:flex;align-items:center;gap:6px;margin-top:5px;font-size:10.5px;color:var(--text3);} .tc-leg[hidden]{display:none;}
.tc-leg i{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 6px rgba(232,163,23,.55);flex:none;}
/* the plan's chart takes the height the checklist under it used to hold */
.sw-det .asset-chart{aspect-ratio:1.6/1;max-height:380px;}
@media(max-width:820px){ .sw-det .asset-chart{height:236px;} }
body.free .pib,body.free .tc-leg,body.free .tw-log,body.free .tw-pm{display:none!important;}
.sw-det{padding:0 10px 12px;animation:swOpen .22s ease-out both;} .sw-det tr,.sw-det .mcard{animation:none!important;opacity:1!important;}
@keyframes swOpen{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}} .sw-det .setup-tbl{width:100%;} .sw-det .mcards{padding:4px 2px 0;}
@media(max-width:760px){
  .sw-sum{grid-template-columns:auto 1fr auto;grid-template-areas:"tk st go" "lv lv dm" "fl fl fl" "r r r";gap:8px 10px;padding:12px 12px;}
  .sw-fl{grid-area:fl;flex-direction:row;align-items:center;gap:10px;} .sw-fl:empty{display:none;} .sw-fl .fl-bar{flex:1 1 60px;min-width:48px;max-width:none;}
  .sw-tk{grid-area:tk;flex-direction:row;align-items:baseline;gap:8px;} .sw-tk small{display:none;} .sw-st{grid-area:st;font-size:11.5px;padding:4px 9px;} .sw-lv{grid-area:lv;} .sw-r{grid-area:r;text-align:left;} .sw-r:empty{display:none;} .sw-dm{grid-area:dm;justify-self:end;} .sw-go{grid-area:go;}
  .sw-lv-s{display:none;}
  .sw-lt small{display:none;}
  .sw-chip{width:100%;} .sw-chip em{margin-left:auto;}
}
@media(hover:none){ .sw-go{background:rgba(245,158,11,.14);} }
html.theme-light .sw-chip{background:#fff;} html.theme-light .sw-chip em{color:#120d00;}
.ma-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:2px 0 10px;padding:10px 12px;border-radius:12px;background:rgba(var(--wc),.03);border:1px solid rgba(var(--wc),.07);}
.ma-st{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--text3);margin-right:auto;}
.ma-st i{width:8px;height:8px;border-radius:50%;background:#2fae7a;box-shadow:0 0 0 3px rgba(47,174,122,.18);}
.ma-st.on{color:var(--text);}
.ma-q{font:inherit;font-size:12px;font-weight:800;padding:7px 12px;border-radius:999px;cursor:pointer;border:1px solid rgba(245,158,11,.5);background:rgba(245,158,11,.1);color:var(--gold);transition:background .18s ease-out;}
.ma-q:hover{background:rgba(245,158,11,.18);} .ma-q:active{transform:scale(.97);}
.ma-q.off{border-color:rgba(var(--wc),.14);background:none;color:var(--text2);}
.ma-note{margin-top:10px;padding:10px 12px;border-radius:10px;font-size:12.5px;color:var(--text2);background:rgba(245,158,11,.07);border:1px solid rgba(245,158,11,.25);} .ma-note.ok{background:rgba(47,174,122,.07);border-color:rgba(47,174,122,.3);}
.ma-locked .ma-t{opacity:.75;} .ma-up{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12px;font-weight:800;color:#1a1200;background:linear-gradient(180deg,#FFD166,#F0A500);border:0;border-radius:999px;padding:7px 12px;cursor:pointer;} .ma-up .svgi{width:13px;height:13px;}
.ma-cta{margin-top:14px;}
.tg-h{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;}
.tg-sw{flex:none;display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:12.5px;font-weight:800;color:var(--text3);background:none;border:0;cursor:pointer;padding:4px;}
.tg-sw i{position:relative;width:40px;height:22px;border-radius:999px;background:rgba(var(--wc),.14);transition:background .2s ease-out;}
.tg-sw i::after{content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s ease-out;}
.tg-sw.on{color:var(--gold);} .tg-sw.on i{background:var(--gold);} .tg-sw.on i::after{transform:translateX(18px);}
.tg-kinds{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;} .tg-kinds.off{opacity:.4;pointer-events:none;}
@media(max-width:600px){ .ma-row{grid-template-columns:34px 1fr;} .ma-sw{grid-column:2;} }
/* MARKETS tab (2 Oct 2026) */
.mk{padding:22px 22px 16px;border-radius:18px;}
.mk-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap;}
.mk-k{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:var(--gold);}
.mk-k .dot{width:6px;height:6px;border-radius:50%;background:#22a06b;box-shadow:0 0 0 3px rgba(34,160,107,.18);}
.mk-h{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.2vw,38px);line-height:1.08;margin:8px 0 6px;color:var(--text);}
.mk-sub{font-size:13.5px;color:var(--text2);line-height:1.55;max-width:640px;margin:0;}
.mk-date{font-family:'DM Mono',monospace;font-size:12px;color:var(--text3);white-space:nowrap;padding-top:4px;}
.mk-filters{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0 12px;}
.mk-f{border:1px solid rgba(var(--wc),.1);background:rgba(var(--wc),.03);color:var(--text2);font:inherit;font-size:12.5px;font-weight:700;padding:7px 12px;border-radius:999px;cursor:pointer;}
.mk-f.on{border-color:rgba(245,158,11,.5);color:var(--gold);background:rgba(245,158,11,.08);}
.mk-row{display:grid;grid-template-columns:minmax(110px,1.1fr) minmax(120px,2.2fr) 74px 84px 158px;gap:12px;align-items:center;padding:11px 4px;border-top:1px solid rgba(var(--wc),.06);}
.mk-row.hd{border-top:0;font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--text3);padding-bottom:6px;}
.mk-name b{display:block;font-size:14px;font-weight:700;color:var(--text);} .mk-name span{font-size:11.5px;color:var(--text3);}
.mk-bar{position:relative;height:10px;border-radius:6px;background:rgba(var(--wc),.06);}
.mk-bar::before{content:'';position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:rgba(var(--wc),.22);}
.mk-bar i{position:absolute;top:0;bottom:0;border-radius:6px;}
.mk-bar i.l{left:50%;background:linear-gradient(90deg,rgba(47,174,122,.55),#2fae7a);} .mk-bar i.s{right:50%;background:linear-gradient(270deg,rgba(210,81,79,.55),#d2514f);}
.mk-pct{font-family:'DM Mono',monospace;font-size:14px;text-align:right;} .mk-pct.l{color:#3fd894;} .mk-pct.s{color:#ff6b68;}
.mk-chg{font-family:'DM Mono',monospace;font-size:12.5px;text-align:right;color:var(--text3);}
.mk-chg.up{color:#3fd894;} .mk-chg.dn{color:#ff6b68;}
.mk-flag{justify-self:end;font-size:10.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;padding:5px 9px;border-radius:999px;white-space:nowrap;}
.mk-flag.l{color:#3fd894;background:rgba(47,174,122,.1);border:1px solid rgba(47,174,122,.3);} .mk-flag.s{color:#ff6b68;background:rgba(210,81,79,.1);border:1px solid rgba(210,81,79,.3);}
.mk-empty{padding:40px 10px;text-align:center;color:var(--text3);font-size:13.5px;}
.mk-foot:empty{display:none;}   /* source line: the shared .src style (13 Oct 2026) */
@media(max-width:760px){ .mk-row{grid-template-columns:1fr 70px;row-gap:7px;} .mk-row.hd{display:none;} .mk-bar{grid-column:1 / -1;order:3;} .mk-chg{display:none;} .mk-flag{grid-column:1 / -1;justify-self:start;order:4;} }
/* FREE TIER (2 Oct 2026) */
/* the free banner only ever takes space in free mode (owner, 4 Oct 2026: an empty gap under the header) */
body:not(.free) #free-bar{display:none!important;}
.free-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;margin:0 0 14px;border-radius:16px;border:1px solid rgba(245,158,11,.3);background:linear-gradient(90deg,rgba(245,158,11,.08),rgba(var(--wc),.02));}
.fb-l{display:flex;align-items:center;gap:12px;min-width:0;}
.fb-l .fb-badge{flex:none;display:inline-block;margin:0;font-size:11px;font-weight:900;letter-spacing:1.4px;line-height:1;text-transform:uppercase;color:#1a1200;background:linear-gradient(180deg,#FFD166,#F0A500);padding:7px 11px;border-radius:999px;box-shadow:0 0 0 1px rgba(255,209,102,.35),0 4px 12px rgba(240,165,0,.25);}
.fb-l b{display:block;font-size:14px;color:var(--text);}
.fb-l span b{display:inline;font-family:'DM Mono',monospace;font-size:inherit;color:var(--text);} .fb-l span{display:block;font-size:12.5px;color:var(--text2);margin-top:2px;line-height:1.45;}
.fb-cta{flex:none;display:flex;flex-direction:column;align-items:center;padding:10px 18px;border-radius:12px;background:linear-gradient(180deg,#FFC94D,#F0A500);color:#1a1200;font-weight:800;font-size:14px;text-decoration:none;white-space:nowrap;}
.fb-cta span{font-size:11px;font-weight:700;opacity:.8;}
body.free .tab:not([data-tab="markets"]):not([data-tab="alerts"]):not([data-tab="home"]):not([data-tab="examples"]):not([data-tab="perks"]){position:relative;padding-right:24px;}
body.free .tab:not([data-tab="markets"]):not([data-tab="alerts"]):not([data-tab="home"]):not([data-tab="examples"]):not([data-tab="perks"]) .tab-text,body.free .tab:not([data-tab="markets"]):not([data-tab="alerts"]):not([data-tab="home"]):not([data-tab="examples"]):not([data-tab="perks"]) .tab-ico{opacity:.6;}
body.free .tab:not([data-tab="markets"]):not([data-tab="alerts"]):not([data-tab="home"]):not([data-tab="examples"]):not([data-tab="perks"])::before{content:'';position:absolute;top:50%;right:6px;margin-top:-8px;width:16px;height:16px;border-radius:50%;z-index:2;
  background:linear-gradient(180deg,#FFD166,#F0A500);box-shadow:0 0 0 2px var(--navbg,#0a0e16),0 4px 10px rgba(240,165,0,.35);}
body.free .tab:not([data-tab="markets"]):not([data-tab="alerts"]):not([data-tab="home"]):not([data-tab="examples"]):not([data-tab="perks"])::after{content:'';position:absolute;top:50%;right:10px;margin-top:-4.5px;width:8px;height:8px;z-index:3;background:#1a1200;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='11' width='16' height='10' rx='2'/><path d='M8 11V7a4 4 0 0 1 8 0v4'/></svg>") center/contain no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='11' width='16' height='10' rx='2'/><path d='M8 11V7a4 4 0 0 1 8 0v4'/></svg>") center/contain no-repeat;}
body.free .foot-paid,body.free #glance,body.free #following,body.free #ob,body.free #howto,body.free .searchbar{display:none!important;}
.up-sheet{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(3,6,14,.72);}
@supports(backdrop-filter:blur(1px)){.up-sheet{backdrop-filter:blur(8px);}}
.up-sheet[hidden]{display:none;}
.up-card{position:relative;width:100%;max-width:460px;max-height:calc(100dvh - 36px);overflow-y:auto;padding:20px;border-radius:20px;text-align:center;border:1px solid rgba(245,158,11,.3);animation:upIn .28s cubic-bezier(.16,1,.3,1);}
@keyframes upIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.up-x{position:absolute;top:10px;right:12px;background:none;border:0;color:var(--text3);font-size:24px;cursor:pointer;line-height:1;}
.up-img{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:16/9;margin-bottom:16px;border:1px solid rgba(245,158,11,.25);background:#0b0f17;box-shadow:0 18px 50px rgba(0,0,0,.45);}
.up-img video{width:100%;height:100%;object-fit:cover;display:block;}
.up-badge{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;gap:6px;padding:5px 10px 5px 8px;border-radius:999px;background:rgba(7,9,15,.78);border:1px solid rgba(245,158,11,.45);color:var(--gold);font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;}
.up-badge .svgi{width:12px;height:12px;}
.up-list{list-style:none;margin:0 0 16px;padding:0;text-align:left;display:flex;flex-direction:column;gap:8px;}
.up-list li{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--text);line-height:1.45;}
.up-list .svgi{flex:none;width:16px;height:16px;margin-top:2px;color:#3fd894;}
.up-k{font-size:11px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--gold);}
.up-h{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1;margin:6px 0 8px;color:var(--text);}
.up-count{display:inline-block;margin:0 0 10px;padding:7px 12px;border-radius:999px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);font-size:13px;font-weight:700;color:var(--gold);}
.up-count b{font-family:'DM Mono',monospace;color:var(--text);}
.up-p{font-size:14px;color:var(--text2);line-height:1.55;margin:0 0 16px;}
.up-cta{display:flex;flex-direction:column;align-items:center;padding:13px 18px;border-radius:14px;background:linear-gradient(180deg,#FFC94D,#F0A500);color:#1a1200;font-weight:800;font-size:16px;text-decoration:none;}
.up-cta span{font-size:12px;font-weight:700;opacity:.8;margin-top:2px;}
.up-back{margin-top:10px;background:none;border:0;color:var(--text3);font:inherit;font-size:13px;cursor:pointer;padding:6px;}
.dh-free{margin:12px 0 4px;padding:12px 13px;border-radius:12px;border:1px solid rgba(34,160,107,.3);background:rgba(34,160,107,.06);}
.dh-free b{display:block;font-size:13.5px;color:var(--text);} .dh-free span{display:block;font-size:12px;color:var(--text2);line-height:1.5;margin:3px 0 9px;}
.dh-free-btn{width:100%;padding:11px;border-radius:10px;border:1px solid rgba(34,160,107,.45);background:rgba(34,160,107,.14);color:#c9f5df;font:inherit;font-size:14px;font-weight:700;cursor:pointer;}
.dh-free-btn:hover{background:rgba(34,160,107,.22);}
@media(max-width:700px){ .free-bar{flex-direction:column;align-items:stretch;} .fb-cta{width:100%;} }
/* THE FREE NOTE (18 Oct 2026): one calm line, once, when a door other than Start free let someone into the free section */
.free-note{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;margin:0 0 14px;border-radius:14px;border:1px solid rgba(var(--wc),.09);background:rgba(var(--wc),.04);color:var(--text);font-size:13.5px;line-height:1.55;animation:dhIn .25s ease-out both;}
.free-note[hidden]{display:none!important;}
.free-note .fn-ic{flex:none;width:18px;height:18px;margin-top:2px;color:var(--gold);}
.free-note .fn-b{flex:1;min-width:0;}
.free-note .fn-up{display:inline-block;margin-top:4px;color:var(--gold);font-weight:700;text-decoration:none;}
.free-note .fn-up:hover{text-decoration:underline;}
.free-note .fn-x{flex:none;width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:8px;background:none;color:var(--muted,#8a93a6);cursor:pointer;transition:background .15s ease-out;}
.free-note .fn-x:hover{background:rgba(var(--wc),.06);} .free-note .fn-x:active{transform:scale(.97);}
.free-note .fn-x svg{width:14px;height:14px;}
.lp-fix{background:none;border:0;padding:0;color:var(--gold);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer;}
.free-bar.fb-welcome .fb-cta{display:none;} .fb-soft{flex:none;background:none;border:1px solid var(--gold-border);border-radius:12px;padding:10px 16px;color:var(--gold);font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:background .18s ease-out;} .fb-soft:hover{background:var(--gold-dim);} .fb-soft:active{transform:scale(.97);}
@media(max-width:700px){ .fb-soft{width:100%;} }
/* LAPTOP TABS (3 Oct 2026, owner: "tabs no good must be cleaner no overlapping text"): between phone and wide desktop the
   nine tabs do not fit as icon + full label + subtitle, so each becomes an icon over its short label (never cut off),
   and the lock sits on the corner of the icon instead of over the text. */
/* every width above the phone: short labels (Swing, Forex, Vol...), no subtitles. The bar is capped at 1228px, so nine
   full labels never fit at any screen size. */
@media(min-width:821px){
  .tabs .tab .tab-sub{display:none;}
  .tabs .tab .tab-lbl{font-size:0;overflow:visible;}
  .tabs .tab .tab-lbl::after{content:attr(data-short);font-size:14px;font-weight:700;letter-spacing:-.1px;color:rgba(var(--wc),.7);}
  .tabs .tab.on .tab-lbl::after{color:#0c1018;font-weight:800;}
}
@media(min-width:821px) and (max-width:1100px){
  .tabs .tab{flex-direction:column;gap:5px;padding:9px 4px 8px;}
  .tabs .tab .tab-text{align-items:center;}
  .tabs .tab .tab-sub{display:none;}
  .tabs .tab .tab-lbl{font-size:0;overflow:visible;line-height:1.1;}
  .tabs .tab .tab-lbl::after{content:attr(data-short);font-size:12px;font-weight:700;letter-spacing:-.1px;color:rgba(var(--wc),.66);}
  .tabs .tab.on .tab-lbl::after{color:#0c1018;font-weight:800;}
  .tabs .tab .tab-ico{line-height:1;}
  body.free .tab:not([data-tab="markets"]):not([data-tab="alerts"]):not([data-tab="home"]):not([data-tab="examples"]):not([data-tab="perks"]){padding-right:4px;}
  body.free .tab:not([data-tab="markets"]):not([data-tab="alerts"]):not([data-tab="home"]):not([data-tab="examples"]):not([data-tab="perks"])::before{top:6px;margin-top:0;right:6px;width:15px;height:15px;}
  body.free .tab:not([data-tab="markets"]):not([data-tab="alerts"]):not([data-tab="home"]):not([data-tab="examples"]):not([data-tab="perks"])::after{top:10px;margin-top:0;right:10px;width:7px;height:7px;}
}
@media(max-width:820px){ body.free .tab:not([data-tab="markets"]):not([data-tab="alerts"]):not([data-tab="home"]):not([data-tab="examples"]):not([data-tab="perks"]){padding-right:1px;} body.free .tab:not([data-tab="markets"]):not([data-tab="alerts"]):not([data-tab="home"]):not([data-tab="examples"]):not([data-tab="perks"])::before{top:0;margin-top:0;right:calc(50% - 22px);width:15px;height:15px;} body.free .tab:not([data-tab="markets"]):not([data-tab="alerts"]):not([data-tab="home"]):not([data-tab="examples"]):not([data-tab="perks"])::after{top:4px;margin-top:0;right:calc(50% - 18px);left:auto;transform:none;width:7px;height:7px;border-radius:0;} }
/* GET SET UP checklist (2 Oct 2026) */
.ob{margin:0 0 14px;padding:18px 20px 12px;border-radius:16px;border:1px solid rgba(245,158,11,.28);background:linear-gradient(180deg,rgba(245,158,11,.07),rgba(var(--wc),.02));}
.ob-head{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.ob-t{display:flex;align-items:center;gap:12px;}
.ob-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:var(--gold);background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.28);}
.ob-ic .svgi{width:19px;height:19px;}
.ob-t b{display:block;font-size:15.5px;font-weight:800;color:var(--text);}
.ob-t span:not(.ob-ic){display:block;font-size:12.5px;color:var(--text3);margin-top:2px;}
.ob-n{font-family:'DM Mono',monospace;font-size:15px;color:var(--text3);} .ob-n b{color:var(--gold);font-weight:500;font-size:19px;}
.ob-bar{height:6px;border-radius:6px;background:rgba(var(--wc),.08);margin:14px 0 8px;overflow:hidden;}
.ob-bar i{display:block;height:100%;width:0;border-radius:6px;background:linear-gradient(90deg,#d98b00,#FFC94D);transition:width .5s cubic-bezier(.16,1,.3,1);}
.ob-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;}
.ob-step{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border-radius:12px;border:1px solid rgba(var(--wc),.08);background:rgba(var(--wc),.02);cursor:pointer;text-align:left;color:var(--text);font:inherit;width:100%;transition:border-color .18s ease,background .18s ease,transform .12s ease;}
.ob-step:hover{border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.05);}
.ob-step:active{transform:scale(.97);}
.ob-dot{flex:none;width:22px;height:22px;border-radius:50%;border:1.5px solid rgba(var(--wc),.25);display:grid;place-items:center;margin-top:1px;}
.ob-dot .svgi{width:13px;height:13px;opacity:0;color:#04140b;stroke-width:3;}
.ob-step.done .ob-dot{background:#22a06b;border-color:#22a06b;} .ob-step.done .ob-dot .svgi{opacity:1;}
.ob-step b{display:block;font-size:13px;font-weight:700;line-height:1.3;}
.ob-step span:not(.ob-dot){display:block;font-size:11.5px;color:var(--text3);line-height:1.4;margin-top:3px;}
.ob-step.done b{color:var(--text3);text-decoration:line-through;text-decoration-color:rgba(var(--wc),.3);}
.ob-step.next{border-color:rgba(245,158,11,.45);box-shadow:0 0 0 3px rgba(245,158,11,.08);}
.ob-foot{display:flex;justify-content:flex-end;margin-top:6px;}
.ap-secs{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 14px;}
.ap-secs button{border:1px solid rgba(var(--wc),.1);background:rgba(var(--wc),.03);color:var(--text2);font:inherit;font-size:13px;font-weight:700;padding:9px 14px;border-radius:10px;cursor:pointer;transition:background .18s ease-out,border-color .18s ease-out;}
.ap-secs button.on{color:var(--gold);border-color:var(--gold-border);background:var(--gold-dim);} .ap-secs button:active{transform:scale(.97);}
@media(max-width:600px){ .ap-secs{display:grid;grid-template-columns:1fr 1fr;} .ap-secs button{text-align:center;} }
.mk-howrow{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;}
.mk-alert-btn{display:inline-flex;align-items:center;gap:7px;min-height:36px;margin-top:12px;padding:0 14px;border-radius:999px;border:1px solid rgba(var(--wc),.14);background:rgba(var(--wc),.04);color:var(--text);font:inherit;font-size:13px;font-weight:700;cursor:pointer;}
.mk-alert-btn .svgi{width:15px;height:15px;color:var(--gold);} .mk-alert-btn:hover{border-color:var(--gold-border);} .mk-alert-btn:active{transform:scale(.97);}
.ma-sheet-card{max-width:560px;max-height:86vh;overflow:auto;text-align:left;}
.gd-mc{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:12px 14px;border-radius:14px;border:1px solid var(--gold-border);background:var(--gold-dim);color:var(--text);text-decoration:none;transition:background .18s ease-out}.gd-mc:hover{background:rgba(245,158,11,.18)}.gd-mc:active{transform:scale(.98)}.gd-mc .svgi{width:20px;height:20px;color:var(--gold);flex:none}.gd-mc span{flex:1;min-width:0}.gd-mc b{display:block;font-size:14px}.gd-mc i{display:block;font-style:normal;font-size:12px;color:var(--text3)}.gd-mc em{font-style:normal;font-weight:800;font-size:13px;color:var(--gold);white-space:nowrap}
.ob-later{background:none;border:0;color:var(--text3);font:inherit;font-size:12px;cursor:pointer;padding:6px 4px;}
.ob-later:hover{color:var(--text);}
@media(max-width:900px){ .ob-list{grid-template-columns:1fr;} .ob-step{align-items:center;} }
/* the guide library, top of the Learn tab */
.fbtn-n{font-family:'DM Mono',monospace;font-weight:500;font-size:.86em;opacity:.6;margin-left:3px;}
.gd-acc summary .svgi{color:var(--gold);}
.gd-intro{margin:0 2px 14px;font-size:13px;line-height:1.6;color:var(--text2);max-width:72ch;}
.gd-prog{display:flex;align-items:center;gap:12px;margin:0 2px 16px;}
.gd-prog-bar{flex:1 1 auto;max-width:340px;height:5px;border-radius:99px;background:rgba(var(--wc),.07);overflow:hidden;}
.gd-prog-bar i{display:block;height:100%;border-radius:99px;background:var(--gold);transition:width .4s ease-out;}
.gd-prog-n{font-family:'DM Mono',monospace;font-size:11px;color:var(--text3);white-space:nowrap;}
/* next up: the one luminous thing in the section */
.gd-next{display:flex;flex-direction:column;gap:8px;padding:18px 18px 16px;border:1px solid var(--gold-border);border-radius:16px;background:linear-gradient(180deg,var(--gold-dim),rgba(var(--wc),.02));margin-bottom:20px;}
.gd-next.is-done{border-color:var(--green-border);background:var(--green-dim);}
.gd-next-k{font-size:10px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;color:var(--gold);}
.gd-next.is-done .gd-next-k{color:var(--green);}
.gd-next-t{font-size:21px;font-weight:800;letter-spacing:-.5px;line-height:1.15;color:var(--text);}
.gd-next .gd-what{font-size:13.5px;max-width:68ch;}
.gd-part{margin:0 2px 10px;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--text3);}
.gd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;}
.gd-card{display:grid;grid-template-columns:22px minmax(0,1fr);gap:0 10px;align-content:start;padding:15px 16px;border:1px solid var(--border);border-radius:14px;transition:border-color .18s ease-out;}
.gd-card.is-next{border-color:var(--gold-border);}
.gd-num{font-family:'DM Mono',monospace;font-size:11px;color:var(--text3);padding-top:4px;}
.gd-card.is-read .gd-num{color:var(--green);padding-top:2px;}
.gd-num .svgi{width:15px;height:15px;}
.gd-main{display:flex;flex-direction:column;gap:7px;min-width:0;}
.gd-title{font-size:15px;font-weight:800;letter-spacing:-.2px;color:var(--text);line-height:1.25;}
.gd-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-family:'DM Mono',monospace;font-size:10.5px;color:var(--text3);}
.gd-tag{font-family:inherit;font-weight:800;font-size:9.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--text2);border:1px solid var(--border);border-radius:6px;padding:2px 7px;}
.gd-next .gd-tag{font-family:inherit;}
.gd-mem{color:var(--gold);}
.gd-what{font-size:12.5px;line-height:1.55;color:var(--text2);}
.gd-best{font-size:11.5px;line-height:1.45;color:var(--text3);}
.gd-best i{font-style:normal;font-weight:800;font-size:9.5px;letter-spacing:.6px;text-transform:uppercase;color:rgba(var(--wc),.45);margin-right:4px;}
.gd-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:5px;}
.gd-open{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--gold-border);background:var(--gold-dim);color:var(--gold);font-family:inherit;font-weight:800;font-size:12.5px;line-height:1;text-decoration:none;cursor:pointer;transition:background .18s ease-out,transform .15s ease-out,border-color .18s ease-out;-webkit-tap-highlight-color:transparent;}
.gd-next .gd-open{background:var(--gold);border-color:var(--gold);color:#0c1018;min-height:44px;padding:0 22px;font-size:13.5px;}
.gd-open:hover{border-color:var(--gold);}
.gd-open:active{transform:scale(.97);}
.gd-open:focus-visible,.gd-dl:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
.gd-open[disabled]{opacity:.75;cursor:progress;}
.gd-open.ready{background:var(--green-dim);border-color:var(--green-border);color:var(--green);}
.gd-next .gd-open.ready{background:var(--green-dim);border-color:var(--green-border);color:var(--green);}
.gd-dl{font-size:12px;font-weight:700;color:var(--text2);text-decoration:none;border-bottom:1px dotted rgba(var(--wc),.32);padding:10px 0;}
.gd-dl:hover{color:var(--text);}
.gd-foot{margin:16px 2px 0;font-size:12px;line-height:1.6;color:var(--text3);}
.gd-foot a{color:var(--text2);text-decoration:none;border-bottom:1px dotted rgba(var(--wc),.32);}
.gd-foot a:hover{color:var(--gold);}
.gd-err{flex-basis:100%;font-size:12px;line-height:1.45;color:var(--red);}
.gd-spin{width:12px;height:12px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:gdspin .7s linear infinite;}
@keyframes gdspin{to{transform:rotate(360deg);}}
@media(max-width:480px){ .gd-grid{grid-template-columns:minmax(0,1fr);} .gd-card{padding:14px;} .gd-next{padding:16px 15px 15px;} .gd-next-t{font-size:19px;} .gd-next .gd-open{width:100%;} }
@media(prefers-reduced-motion:reduce){ .gd-card,.gd-open,.gd-prog-bar i{transition:none;} .gd-spin{animation-duration:2s;} }
/* example trades */
/* Winners / losers accordions on the Examples tab. Native <details>, no JS. */
.ex-acc{margin-bottom:16px;}
.ex-acc summary{display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none;padding:13px 16px;border:1px solid var(--border);border-radius:14px;background:rgba(var(--wc),.03);font-size:14px;font-weight:800;color:var(--text);}
.ex-acc summary::-webkit-details-marker{display:none;}
.ex-acc summary .svgi{width:16px;height:16px;color:var(--gold);}
.ex-acc[open] summary{margin-bottom:14px;}
.ex-acc .ex-arr{margin-left:auto;color:var(--text3);transition:transform .18s;}
.ex-acc[open] .ex-arr{transform:rotate(180deg);}
.ex-count{font-family:'DM Mono';font-size:11px;color:var(--text3);background:rgba(var(--wc),.05);border:1px solid var(--border);border-radius:9px;padding:2px 8px;margin-left:4px;}
.ex-losers summary .svgi{color:var(--red);}
.ex-loss-stats{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px;font-size:12px;color:var(--text2);}
.ex-loss-stats span{background:rgba(var(--wc),.03);border:1px solid var(--border);border-radius:10px;padding:7px 12px;}
.ex-loss-stats b{color:var(--text);font-family:'DM Mono';font-weight:500;}
.ex-loss-stats b.gold{color:var(--gold);}
.ex-loss-r{font-family:'DM Mono';font-size:12px;color:var(--red);margin-left:6px;}
.examples-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px;}
.example-card{border-radius:16px;overflow:hidden;}
.example-img img{width:100%;height:auto;display:block;border-bottom:1px solid var(--glass-border);}
/* Learn captions (13 Oct 2026, sleek pass): one caption style, tighter. Title, then the tags as muted chips (the first one
   keeps the gold, so each card has one accent), then the caption in the shared muted body size. Words unchanged. */
.example-body{padding:14px 16px 16px;}
.example-pair{font-size:15px;font-weight:800;color:var(--text);letter-spacing:-.25px;line-height:1.3;margin-bottom:8px;}
.example-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:9px;}
.example-tags .tag{font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--text2);background:rgba(var(--wc),.04);border:1px solid var(--border);border-radius:20px;padding:3px 9px;}
.example-tags .tag:first-child{color:var(--gold);background:var(--gold-dim);border-color:var(--gold-border);}
.example-desc{font-size:12px;color:var(--text3);line-height:1.6;max-width:62ch;text-wrap:pretty;}
@media(max-width:820px){.examples-grid{grid-template-columns:1fr;}}

/* ===== RESPONSIVE ===== */
@media(max-width:820px){
  /* native-style fixed bottom tab bar */
  #app{padding-bottom:calc(76px + env(safe-area-inset-bottom));}
  .rbt-net{bottom:calc(92px + env(safe-area-inset-bottom,0px));}
  .tabs{
    position:fixed;top:auto;left:0;right:0;bottom:0;z-index:50;
    display:grid;grid-template-columns:repeat(8,1fr);gap:0;margin:0;overflow:visible;
    padding:10px 2px calc(10px + env(safe-area-inset-bottom));
    background:var(--navbg,rgba(10,14,22,0.97));backdrop-filter:blur(12px) saturate(1.3);-webkit-backdrop-filter:blur(12px) saturate(1.3);
    border-top:1px solid rgba(var(--wc),.12);border-radius:0;
    box-shadow:0 -6px 32px rgba(0,0,0,.45);
  }
  /* iOS Safari: while the bottom URL bar collapses/expands mid-scroll, fixed
     elements track the LAYOUT viewport and page content shows through a band
     under the bar until the chrome settles. The lag is browser behaviour and
     cannot be removed, so extend the bar's own backdrop well below the
     viewport, and the transient band paints as bar instead of page. Absolutely
     positioned off a fixed parent: zero effect on layout or scroll height. */
  .tabs::before{
    content:'';position:absolute;top:100%;left:0;right:0;height:160px;
    background:inherit;pointer-events:none;
  }
  .tab{
    flex-direction:column;gap:3px;padding:4px 1px;border-radius:12px;text-align:center;justify-content:flex-start;
    background:transparent;border:1px solid transparent;box-shadow:none;white-space:normal;
    position:relative;
  }
  .tab::after{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
    width:0;height:2px;background:var(--gold);border-radius:0 0 3px 3px;transition:width .2s;}
  .tab.on::after{width:28px;}
  .tab:hover{border-color:transparent;background:transparent;}
  .tab.on{background:transparent;box-shadow:none;border-color:transparent;}
  .tab-ico{font-size:20px;display:block;line-height:1;}
  .tab-text{align-items:center;}
  .tab-sub{display:none;}
  /* Seven across a 375px phone is ~53px per tab. Let the two-word names wrap
     onto a second line instead of clipping, and hold every tab to the same
     height so the bar stays a straight edge. */
  /* One line per tab. Seven across a phone leaves ~53px, and "Swing Setups"
     wrapped to two while the rest stayed on one, the bar read as ragged.
     Each tab carries a short form for this width. */
  .tab-lbl{display:block;font-size:0;line-height:1.15;white-space:nowrap;}
  .tab-lbl::after{content:attr(data-short);font-size:9px;font-weight:700;letter-spacing:-.1px;color:rgba(var(--wc),.45);}
  .tab.on .tab-lbl::after{color:var(--gold);font-weight:800;}
  .tab-text{justify-content:flex-start;min-height:22px;}
  .tab-ico{margin-bottom:1px;}

  .tbl-wrap{display:none;}
  .mcards{display:flex;}
  /* Rows of pills fill the width (11 Sep 2026): each grows to share its line
     and the last line reaches the edge, so no ragged gaps beside a lone pill. */
  .bar>*{flex:1 1 auto;justify-content:center;text-align:center;}
  .bar .stat.spacer{margin-left:0;}
  .legend{gap:6px;}
  .legend>b{flex:0 0 100%;}
  .legend>span{flex:1 1 auto;justify-content:center;}
  .how-imgs{grid-template-columns:1fr;}
  .note,.asset small{max-width:none;}
  /* glance: stack the regime pill, note, stats and jump in one tight column
     instead of a wide flex-wrap that leaves a gap beside the pill */
  .glance{flex-direction:column;align-items:stretch;gap:11px;padding:13px 14px;}
  .regime{align-self:flex-start;}
  .glance-note{min-width:0;width:100%;}
  .glance-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;width:100%;}
  .gstat{min-width:0;padding:8px 4px;}
  .gstat .n{font-size:18px;}
  .gstat .l{font-size:7.5px;letter-spacing:.2px;margin-top:4px;}
  .glance-jump{align-self:flex-start;}
  .topbar{padding:13px 15px;}
  .mcard{padding:13px;}
}
/* Portfolio table: below tablet, drop the two raw EMA columns and Structure
   (all visible in the row's tap-to-expand panel) so it fits the screen with no
   horizontal scroll, keeps Asset · Price · vs 200W · Signal inline. */
/* 681-820px (owner, 4 Oct 2026: Signal cut off at ~720px): the table fits with no sideways scroll. The 50W EMA and
   Structure columns step out (both are in the row's tap-to-expand panel), Asset · Price · 200W · vs 200W · Signal stay. */
@media(min-width:681px) and (max-width:820px){
  table.mkt{min-width:0;}
  table.mkt th:nth-child(4), table.mkt td:nth-child(4),
  table.mkt th:nth-child(6), table.mkt td:nth-child(6){display:none;}
}
@media(max-width:680px){
  table.mkt{min-width:0;}
  table.mkt th:nth-child(3), table.mkt td:nth-child(3),
  table.mkt th:nth-child(4), table.mkt td:nth-child(4),
  table.mkt th:nth-child(6), table.mkt td:nth-child(6){display:none;}
  table.mkt th{padding:10px 6px;font-size:9px;letter-spacing:.3px;}
  table.mkt td{padding:11px 6px;}
  table.mkt th .ar{font-size:7px;margin-left:1px;}
  /* the asset name gives way first: the ticker is the part that matters and
     the full name is in the row's own expand panel anyway */
  table.mkt td:nth-child(1){max-width:104px;}
  /* the ticker and its score pill keep their size, only the name below
     gives way, otherwise the cap ran "MATIC" straight into "1/5" */
  .mkt-symline{min-width:0;flex-wrap:wrap;row-gap:3px;column-gap:6px;}   /* 5 Oct 2026: a 4-5 letter ticker plus its pill is wider than the 104px cap, so the pill drops under the ticker instead of running into the price */
  .mkt-symline .mkt-sym{flex:0 0 auto;}
  .mkt-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .mkt-sig{font-size:9px;padding:3px 5px;letter-spacing:0;}
  .mkt-sig .svgi{width:10px;height:10px;}
}
@media(max-width:480px){
  .upd-pill{font-size:10.5px;padding:5px 10px;}
  .wins .win{min-width:100%;}
}

/* ===== TICKER SEARCH (universal, in topbar) ===== */
.tb-mid{flex:1 1 auto;min-width:220px;max-width:560px;display:flex;align-items:center;gap:9px;background:rgba(var(--wc),.04);border:1px solid var(--glass-border);border-radius:11px;padding:8px 14px;transition:border-color .15s;}   /* fills the bar between the brand and the controls; a fixed 340px left a hole beside a cut-off placeholder (11 Sep 2026) */
/* One line for the whole bar down to tablet widths: the search gives way first, then the date pill tightens. (Placed AFTER the base rule: an earlier media rule of equal specificity would lose to it.) */
@media(min-width:821px) and (max-width:1120px){ .tb-mid{max-width:260px;min-width:170px} .upd-pill{font-size:11px;padding:5px 10px} }   /* under 821 the three-row bar rule owns the search width */
.tb-mid:focus-within{border-color:rgba(53,104,212,.55);box-shadow:0 0 0 3px rgba(53,104,212,.14);}
.ts-ico{font-size:13px;color:var(--text3);flex-shrink:0;}
.ts-input{flex:1;background:none;border:none;outline:none;color:var(--text);font-family:'Inter',system-ui;font-size:13px;min-width:0;}
.ts-input::placeholder{color:var(--text3);}
/* Ticker modal */
.ts-modal{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:200;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:24px 16px 48px;}
.ts-modal-inner{width:100%;max-width:820px;border-radius:20px;padding:24px;}
.ts-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;}
.ts-modal-ticker{font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.3px;}
.ts-modal-fav{margin-right:auto;display:inline-flex;align-items:center;}
.ts-modal-fav .fav-star{font-size:23px;padding:0 0 0 11px;}
.ts-close{background:rgba(var(--wc),.07);border:1px solid var(--border);border-radius:9px;color:var(--text2);font-size:14px;padding:6px 12px;cursor:pointer;font-family:'Inter',system-ui;line-height:1;transition:background .15s;}
.ts-close:hover{background:rgba(var(--wc),.14);}
.ts-chart-wrap{margin-top:20px;}
.ts-chart-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--text3);margin-bottom:8px;}

/* ===== SEASONALITY MODULE (5-yr avg monthly returns, dependency-free bars) ===== */
/* price-alert panel inside the ticker modal */
.ts-alert{margin:12px 2px 0;background:rgba(245,158,11,0.05);border:1px solid var(--gold-border);border-radius:12px;padding:14px 16px;}
.ts-alert-h{font-size:12px;font-weight:800;color:var(--gold);letter-spacing:.3px;margin-bottom:10px;}
.ts-alert-none{font-size:12px;color:var(--text3);margin-bottom:10px;}
.ts-alert-cur{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--text2);background:rgba(0,0,0,.25);border:1px solid var(--border);border-radius:8px;padding:8px 11px;margin-bottom:8px;}
.ts-alert-cur button{background:none;border:none;color:var(--text3);cursor:pointer;font-size:12px;padding:2px 4px;}
.ts-alert-cur button:hover{color:#c93b3b;}
.ts-alert-form{display:flex;gap:8px;flex-wrap:wrap;}
.ts-alert-form input{flex:1;min-width:120px;background:rgba(0,0,0,.35);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 11px;font-size:13px;font-family:'Inter',sans-serif;}
.ts-alert-form input:focus{outline:none;border-color:var(--gold-border);}
.ts-alert-save{flex:0 0 auto;background:var(--gold);color:#0a0a12;border:none;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:800;cursor:pointer;font-family:'Inter',sans-serif;}
.ts-alert-save:hover{background:var(--gold2);}
.ts-alert-note{font-size:10.5px;color:var(--text3);margin-top:9px;line-height:1.5;}
.season-panel{margin-top:22px;padding-top:18px;border-top:1px solid var(--border);}
/* Until Analyse is pressed the panel is an empty div, it must not reserve a
   band of dead space inside the card while it waits. */
.season-panel:empty{display:none;}
.season-h{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:var(--gold);margin-bottom:3px;}
.season-title{font-size:15px;font-weight:800;color:var(--text);letter-spacing:-.2px;}
.season-desc{font-size:11.5px;color:var(--text3);margin:3px 0 14px;line-height:1.5;}
.season-loading,.season-msg{padding:26px 12px;text-align:center;color:var(--text3);font-size:12px;}
.season-msg b{color:var(--text2);}
.season-msg span{display:block;font-size:10px;margin-top:5px;color:var(--text3);}
.season-chart{position:relative;display:flex;gap:5px;align-items:stretch;padding:0 2px;}
.season-chart::after{content:'';position:absolute;left:0;right:0;top:62px;height:1px;background:rgba(var(--wc),.13);}
.season-col{flex:1;display:flex;flex-direction:column;min-width:0;}
.season-top{height:62px;display:flex;align-items:flex-end;}
.season-bot{height:62px;display:flex;align-items:flex-start;}
.season-bar{width:100%;transition:opacity .15s;}
.season-bar.up{background:linear-gradient(180deg,var(--green),rgba(34,160,107,.5));border-radius:4px 4px 0 0;box-shadow:0 0 10px rgba(34,160,107,.22);}
.season-bar.dn{background:linear-gradient(0deg,var(--red),rgba(201,59,59,.5));border-radius:0 0 4px 4px;box-shadow:0 0 10px rgba(201,59,59,.18);}
.season-col:hover .season-bar{opacity:.78;}
.season-x{font-size:9.5px;text-align:center;color:var(--text3);margin-top:7px;font-weight:600;}
.season-x.best{color:var(--green);font-weight:800;}
.season-x.worst{color:var(--red);font-weight:800;}
.season-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px;}
.season-stat{background:rgba(var(--wc),.03);border:1px solid var(--border);border-radius:11px;padding:11px 13px;}
.season-stat-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);}
.season-stat-val{font-size:17px;font-weight:800;margin-top:4px;font-family:'DM Mono',monospace;}
.season-foot{font-size:10px;color:var(--text3);margin-top:10px;}
.season-tool-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:11px;}
.season-input{flex:1;min-width:160px;background:rgba(7,9,15,.7);border:1px solid var(--border2);border-radius:10px;padding:10px 13px;font-size:14px;color:var(--text);outline:none;text-transform:uppercase;font-family:'DM Mono',monospace;}
.season-input:focus{border-color:var(--gold-border);}
.season-go{background:linear-gradient(145deg,var(--gold),var(--gold-deep));border:none;border-radius:10px;padding:10px 20px;font-weight:800;font-size:13px;color:#0a0a12;cursor:pointer;white-space:nowrap;}
.season-picks{display:flex;gap:6px;flex-wrap:wrap;}
.season-pick{background:rgba(var(--wc),.05);border:1px solid var(--border);border-radius:16px;padding:5px 12px;font-size:11px;font-weight:700;color:var(--text2);cursor:pointer;transition:.15s;}
.season-pick:hover{border-color:var(--gold-border);color:var(--gold);}
/* volatility "range used" bar */
.vol-used{margin-top:14px;}
.vol-used-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--text3);font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;}
.vol-used-top b{font-family:'DM Mono',monospace;font-size:14px;}
.vol-used-track{height:9px;background:rgba(var(--wc),.06);border-radius:5px;overflow:hidden;}
.vol-used-fill{height:100%;border-radius:5px;transition:width .3s;}
.vol-used-note{font-size:11px;color:var(--text2);margin-top:7px;line-height:1.5;}
/* market-intel row (sector rotation + fear/greed) */
.mkt-intel-row{display:grid;grid-template-columns:1fr 340px;gap:14px;margin-bottom:14px;}
.mkt-intel-card{padding:16px;}
.rot-list{display:flex;flex-direction:column;gap:8px;margin-top:12px;}
.rot-row{display:grid;grid-template-columns:150px 1fr 52px;align-items:center;gap:10px;}
.rot-name{font-size:12px;color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rot-name span{color:var(--text3);font-size:10px;font-weight:500;}
.rot-track{height:9px;background:rgba(var(--wc),.05);border-radius:5px;overflow:hidden;position:relative;}
.rot-bar{height:100%;border-radius:5px;}
.rot-bar.up{background:linear-gradient(90deg,rgba(34,160,107,.5),var(--green));}
.rot-bar.dn{background:linear-gradient(90deg,rgba(201,59,59,.5),var(--red));}
.rot-val{font-family:'DM Mono',monospace;font-size:12px;font-weight:600;text-align:right;}
.fng-gauge{text-align:center;padding:8px 0 2px;}
.fng-num{font-size:46px;font-weight:800;line-height:1;font-family:'DM Mono',monospace;}
.fng-label{font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:1px;margin-top:6px;}
.fng-track{height:10px;background:linear-gradient(90deg,var(--red),var(--orange),var(--gold),var(--lime),var(--green));border-radius:6px;margin:16px 0 5px;position:relative;overflow:visible;}
.fng-needle{position:absolute;top:-4px;width:4px;height:18px;background:#fff;border-radius:2px;transform:translateX(-50%);box-shadow:0 0 6px rgba(0,0,0,.6);}
.fng-scale{display:flex;justify-content:space-between;font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;font-weight:600;}
@media(max-width:820px){.mkt-intel-row{grid-template-columns:1fr;}.fng-card{max-width:none;}}
@media(max-width:600px){.season-stats{grid-template-columns:repeat(2,1fr);}.rot-row{grid-template-columns:110px 1fr 48px;}}

/* ===== FAQ + SOCIAL (landing page) ===== */
.lp-faq-section{padding:72px 24px 56px;max-width:780px;margin:0 auto;}
.lp-faq-list{margin-top:40px;display:flex;flex-direction:column;gap:2px;}
.lp-faq-item{border-bottom:1px solid rgba(var(--wc),.06);}
.lp-faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:18px 4px;cursor:pointer;font-size:15px;font-weight:600;color:var(--text);letter-spacing:-.15px;gap:16px;}
.lp-faq-item summary::-webkit-details-marker{display:none;}
.lp-faq-item summary::after{content:'+';font-size:18px;font-weight:400;color:var(--gold);flex-shrink:0;transition:transform .2s;}
.lp-faq-item[open] summary::after{transform:rotate(45deg);}
.lp-faq-a{padding:0 4px 18px;font-size:13.5px;color:var(--text2);line-height:1.7;}
.lp-faq-a a{color:var(--gold);text-decoration:none;}
.lp-social-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:52px;padding-top:40px;border-top:1px solid rgba(var(--wc),.06);}
.lp-social-btn{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:22px;border:1px solid rgba(var(--wc),.1);background:rgba(var(--wc),.04);color:var(--text);text-decoration:none;font-size:13px;font-weight:500;transition:border-color .15s,background .15s;}
.lp-social-btn:hover{border-color:var(--gold-border);background:var(--gold-dim);}
.lp-social-btn .sb-ico{font-size:16px;}
.lp-social-btn .sb-lbl{color:var(--text2);font-size:12px;}

/* =====================================================================
   LANDING PAGE, Apple glass aesthetic v3
   ===================================================================== */
#login{
  min-height:100vh;min-height:100dvh;overflow-x:hidden;padding:0;display:block;
  background:#08101f;
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;
}

/* HERO */
.lp-hero{
  position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;
  justify-content:center;overflow:hidden;
  background:radial-gradient(ellipse at 60% 40%,#152240 0%,#08101f 65%);
}
.lp-hero-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
.lp-hero-vignette{
  position:absolute;inset:0;pointer-events:none;z-index:1;
  background:
    radial-gradient(ellipse 110% 110% at 50% 50%,transparent 35%,rgba(8,16,31,.6) 72%),
    radial-gradient(ellipse 70% 38% at 50% 0%,rgba(8,16,31,.32) 0%,transparent 50%);
}
/* cursor-reactive spotlight (desktop only, pure GPU, no mobile cost) */
.lp-hero-glow{position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;transition:opacity .45s ease;
  background:radial-gradient(460px circle at var(--gx,50%) var(--gy,32%),rgba(245,158,11,.16),rgba(245,158,11,.05) 34%,transparent 62%);}
@media(hover:hover) and (pointer:fine){.lp-hero:hover .lp-hero-glow{opacity:1;}}
@media(prefers-reduced-motion:reduce){.lp-hero-glow{display:none;}}

/* GLASS CARD */
.lp-glass-card{
  position:relative;z-index:10;
  background:rgba(8,12,22,.74);
  backdrop-filter:blur(20px) saturate(1.8);
  -webkit-backdrop-filter:blur(20px) saturate(1.8);
  border:1px solid rgba(var(--wc),.09);
  border-radius:24px;
  padding:28px 34px;
  max-width:500px;
  width:calc(100% - 48px);
  box-shadow:0 0 0 .5px rgba(var(--wc),.06) inset,0 48px 96px rgba(0,0,0,.72),0 0 120px rgba(245,158,11,.11),0 0 240px rgba(245,158,11,.06);
  animation:cardIn .85s cubic-bezier(.16,1,.3,1) both;
}
/* Desktop: the card sat at 500px on a 1900px screen with dead space either
   side while the wins strip wrapped into cramped rows. Step it up where the
   room genuinely exists. The <=920px rules below override max-width for
   phones and are unaffected. */
@media(min-width:1200px){ .lp-glass-card{max-width:560px;padding:32px 40px;} }
@media(min-width:1600px){ .lp-glass-card{max-width:620px;padding:38px 46px;} }
.lp-glass-card::before{
  content:'';position:absolute;top:0;left:16px;right:16px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(var(--wc),.14),transparent);
}
@keyframes cardIn{0%{opacity:0;transform:translateY(28px) scale(.97);}100%{opacity:1;transform:translateY(0) scale(1);}}

/* BRAND */
.lp-brand{display:flex;align-items:center;gap:10px;margin-bottom:15px;}
.lp-brand-logo{height:30px;width:30px;border-radius:7px;object-fit:contain;}
.lp-brand-name{font-family:var(--wordmark);font-size:14px;font-weight:800;color:rgba(var(--wc),.9);letter-spacing:.3px;}

/* HEADLINE */
.lp-hero-h1{font-size:clamp(28px,4.5vw,38px);font-weight:800;line-height:1.08;letter-spacing:-1.2px;color:var(--text);margin:0 0 8px;}
/* Hero headline reveal, one effect, executed once, no layout shift. */
.h1-line{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em;}
.h1-line > span{display:block;transform:translateY(105%);opacity:0;animation:h1Rise .78s cubic-bezier(.22,1,.36,1) forwards;}
.h1-line:nth-child(2) > span{animation-delay:.13s;}
@keyframes h1Rise{to{transform:translateY(0);opacity:1;}}
@media(prefers-reduced-motion:reduce){
  .h1-line > span{animation:none;transform:none;opacity:1;}
}
.lp-hero-h1-accent{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0;color:var(--gold);}
/* the whole headline in the editorial serif (30 Sep 2026): roman white for the pain, italic gold for the answer. Lighter than the 800 grotesk, so it runs larger. */
#login .lp-hero-h1{font-family:var(--serif);font-weight:400;letter-spacing:-.015em;line-height:1.04;font-size:clamp(30px,6.4vw,44px);text-wrap:balance;}
/* short screens (small laptops, small phones): the headline gives height back so the join button stays on the first screen */
@media(max-height:720px){ #login .lp-hero-h1{font-size:clamp(26px,5.6vw,34px);} }
/* No orphans. A two-word last line under a paragraph reads as a mistake; 'pretty'
   rebalances the preceding lines to avoid it, short captions get balanced whole. */
.lp-faq-a,.lp-antiai-sub,.lp-id-body{text-wrap:pretty;}
.lp-join-price,.lp-join-note,.lp-feat-desc,.lp-pain-desc,.lp-how-step-desc,.lp-gate-desc,.lp-inside-sub,.lp-stack-sub,.lp-stack-p,.lp-reel-sub,.lp-gates-sub,.lp-final-sub,.lp-change-sub,.lp-price-sub,.lp-section-p{text-wrap:balance;}
.lp-mgallery-cap,.lp-clip-cap,.lp-sp-txt,.lp-id-line{text-wrap:balance;}
.lp-hero-p{text-wrap:pretty;font-size:13.5px;color:rgba(var(--wc),.82);line-height:1.55;margin:0;}

/* AUTH BOX */
.lp-auth-box{margin:15px 0;background:rgba(var(--wc),.03);border:1px solid rgba(var(--wc),.07);border-radius:16px;padding:14px 15px;}
.lp-wins-label{font-size:9.5px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:var(--gold);margin-bottom:10px;opacity:.85;}
.lp-auth-row{display:flex;gap:8px;margin-top:12px;}
.lp-auth-input{
  flex:1;min-width:0;
  background:rgba(var(--wc),.06);border:1px solid rgba(var(--wc),.10);
  border-radius:10px;padding:12px 14px;color:var(--text);font-size:14px;
  font-family:'Inter',system-ui,sans-serif;outline:none;
  transition:border-color .15s,background .15s;
}
.lp-auth-input::placeholder{color:rgba(var(--wc),.28);}
.lp-auth-input:focus{border-color:rgba(245,158,11,.45);background:rgba(var(--wc),.09);}
/* login button is now SECONDARY (a ghost) so the Join CTA is the clear primary */
.lp-auth-btn{
  flex-shrink:0;background:rgba(var(--wc),.06);color:var(--text);
  font-weight:700;font-size:13px;letter-spacing:-.1px;
  padding:12px 18px;border-radius:10px;border:1px solid var(--border2);cursor:pointer;
  white-space:nowrap;font-family:'Inter',system-ui,sans-serif;transition:.14s;
}
.lp-auth-btn:hover{background:rgba(var(--wc),.11);border-color:var(--gold-border);}
.lp-code-msg{font-size:13px;line-height:1.55;color:rgba(var(--wc),.78);margin-top:12px;text-align:center;}
.lp-code-msg b{color:var(--text);font-weight:700;overflow-wrap:anywhere;}
.lp-code-input{letter-spacing:.42em;text-align:center;font-family:'DM Mono',ui-monospace,monospace;font-size:18px;}
.lp-code-input::placeholder{letter-spacing:normal;font-family:'Inter',system-ui,sans-serif;font-size:14px;}
.lp-code-go{background:var(--gold);color:#120d00;border-color:var(--gold);}
.lp-code-go:hover{background:#FFD166;border-color:#FFD166;}
.lp-code-go:active,.lp-auth-btn:active{transform:scale(.97);}
.lp-code-links{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 18px;margin-top:8px;}
.lp-code-help{margin:6px auto 0;max-width:420px;padding:11px 14px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);border-radius:12px;font-size:12.5px;line-height:1.55;color:rgba(var(--wc),.78);text-align:center;animation:dhIn .25s cubic-bezier(.22,1,.36,1) both;}
.lp-code-help[hidden]{display:none;}
.lp-code-help a{color:var(--gold);font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.lp-code-links button{background:none;border:0;color:var(--gold);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;padding:8px 4px;}
.lp-auth-sub{font-size:11.5px;color:rgba(var(--wc),.72);margin-top:11px;line-height:1.55;}
.lp-auth-sub a{color:var(--gold);text-decoration:none;}
/* PRIMARY cold-traffic CTA: subscribe → auto dashboard access */
.lp-join-btn{
  display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;
  margin-top:14px;padding:15px 18px;border-radius:13px;text-decoration:none;
  background:linear-gradient(145deg,#f59e0b,#c8880e);color:#060a12;
  font-weight:900;font-size:16.5px;letter-spacing:-.3px;font-family:'Inter',system-ui,sans-serif;
  box-shadow:0 8px 30px rgba(245,158,11,.4),0 2px 8px rgba(0,0,0,.4);
  transition:transform .15s,box-shadow .15s;animation:joinGlow 2.6s ease-in-out infinite;
}
.lp-join-btn:hover{transform:translateY(-2px);box-shadow:0 14px 40px rgba(245,158,11,.55);}
@keyframes joinGlow{0%,100%{box-shadow:0 8px 30px rgba(245,158,11,.4),0 2px 8px rgba(0,0,0,.4);}50%{box-shadow:0 8px 42px rgba(245,158,11,.62),0 2px 8px rgba(0,0,0,.4);}}
/* The hero button shimmers on its own (12 Sep 2026): the sheen that used to wait for a hover
   sweeps across every few seconds, once, then rests. Only the hero button, one moving thing. */
#lp-join::after{animation:joinSheen 4.8s ease-in-out 1.4s infinite;transition:none;}
@keyframes joinSheen{0%{left:-130%;}26%{left:140%;}100%{left:140%;}}
@media(prefers-reduced-motion:reduce){.lp-join-btn{animation:none;}#lp-join::after{animation:none;}}
.lp-join-price{font-size:11.5px;font-weight:700;opacity:.82;letter-spacing:0;}
.lp-join-note{font-size:11.5px;color:rgba(var(--wc),.72);margin-top:9px;line-height:1.5;text-align:center;}
/* social proof: overlapping member avatars + star rating under the CTA */
.lp-auth-divider{display:flex;align-items:center;gap:12px;margin:11px 0 2px;color:var(--text3);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;}
.lp-auth-divider::before,.lp-auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.login-status{font-size:12px;color:#22a06b;margin-top:8px;}
.login-err{font-size:12px;color:#db6c6c;margin-top:8px;}

/* HERO STATS */
.lp-hero-stats-row{display:flex;align-items:center;border-top:1px solid rgba(var(--wc),.07);padding-top:13px;}
.lp-hs{flex:1;text-align:center;}
.lp-hs-n{font-family:'DM Mono',monospace;font-size:18px;font-weight:500;color:var(--gold);letter-spacing:-.5px;line-height:1;}
.lp-hs-l{font-size:9.5px;color:rgba(var(--wc),.68);text-transform:uppercase;letter-spacing:.6px;margin-top:4px;font-weight:600;}
.lp-hs-sep{width:1px;height:26px;background:rgba(var(--wc),.07);flex-shrink:0;}

/* FLOATING FOREX PAIR PILLS */
.lp-pair{
  position:absolute;font-family:'DM Mono',monospace;font-size:10.5px;
  color:rgba(var(--wc),.42);background:rgba(7,7,15,.62);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(var(--wc),.08);padding:6px 12px;border-radius:8px;
  white-space:nowrap;pointer-events:none;z-index:5;
}
.lp-pair .up{color:#22a06b;}.lp-pair .dn{color:#c93b3b;}
.lp-pair-1{top:20%;left:5%;animation:floatPill 9s ease-in-out infinite;}
.lp-pair-2{top:40%;left:4%;animation:floatPill 11s ease-in-out infinite 2.5s;}
.lp-pair-3{top:18%;right:4%;animation:floatPill 8s ease-in-out infinite 1s;}
.lp-pair-4{top:42%;right:5%;animation:floatPill 10s ease-in-out infinite 3s;}
.lp-pair-5{bottom:24%;left:6%;animation:floatPill 12s ease-in-out infinite 1.5s;}
.lp-pair-6{bottom:22%;right:5%;animation:floatPill 9s ease-in-out infinite 4s;}
@keyframes floatPill{0%,100%{transform:translateY(0);opacity:.42;}50%{transform:translateY(-7px);opacity:.9;}}

/* GALLERY SECTIONS */
.lp-gallery-section{padding:44px 0;overflow:hidden;background:#0b1222;position:relative;z-index:1;}
.lp-section-label-center{text-align:center;font-size:11px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;color:rgba(245,158,11,.78);margin-bottom:28px;}

/* MARQUEE */
.lp-marquee{overflow:hidden;position:relative;padding:6px 0;}
.lp-marquee::before,.lp-marquee::after{content:'';position:absolute;top:0;bottom:0;width:100px;z-index:2;pointer-events:none;}
.lp-marquee::before{left:0;background:linear-gradient(90deg,#0b1222,transparent);}
.lp-marquee::after{right:0;background:linear-gradient(-90deg,#0b1222,transparent);}
.lp-marquee+.lp-marquee{margin-top:10px;}
.lp-marquee-track{display:flex;gap:10px;width:max-content;}
.lp-marquee-left .lp-marquee-track{animation:marqueeL 32s linear infinite;}
.lp-marquee-right .lp-marquee-track{animation:marqueeR 26s linear infinite;}
.lp-marquee:hover .lp-marquee-track{animation-play-state:paused;}
@keyframes marqueeL{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
@keyframes marqueeR{0%{transform:translateX(-50%);}100%{transform:translateX(0);}}

.lp-mgallery-item{flex-shrink:0;border-radius:12px;overflow:hidden;border:1px solid rgba(var(--wc),.07);background:rgba(var(--wc),.02);position:relative;}
.lp-mgallery-item img{width:100%;height:182px;display:block;object-fit:cover;object-position:center;transition:transform .45s cubic-bezier(.25,.46,.45,.94);}
.lp-mgallery-item:hover img{transform:scale(1.06);}
.lp-mgallery-item::after{content:'<svg class="svgi" aria-hidden="true"><use href="#i-search"/></svg>';position:absolute;top:8px;right:8px;width:28px;height:28px;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;opacity:0;transition:opacity .25s;pointer-events:none;line-height:28px;text-align:center;}
.lp-mgallery-item:hover::after{opacity:1;}
.lp-mgallery-cap{padding:7px 11px;font-size:10.5px;color:rgba(var(--wc),.65);border-top:1px solid rgba(var(--wc),.05);display:flex;justify-content:space-between;align-items:center;background:rgba(8,12,20,.65);}
.lp-mgallery-cap strong{color:#22a06b;font-weight:700;}
.lp-mgallery-item.cert{width:200px;}.lp-mgallery-item.wide{width:360px;}.lp-mgallery-item.sq{width:260px;}

/* REVIEW CARDS inside marquee */
.lp-review-card{flex-shrink:0;width:270px;background:rgba(var(--wc),.025);border:1px solid rgba(var(--wc),.07);border-radius:14px;padding:18px;}
.lp-rev-stars{color:var(--gold);font-size:11px;letter-spacing:2px;margin-bottom:8px;}
.lp-stars5{display:inline-flex;gap:2px;} .lp-stars5 .svgi{fill:currentColor;stroke:none;width:1.05em;height:1.05em;}
.lp-ci-icon .svgi{width:1em;height:1em;}
.lp-rev-q{font-size:12.5px;color:rgba(var(--wc),.78);line-height:1.65;font-style:italic;margin-bottom:10px;}
.lp-rev-by{font-size:11px;color:rgba(var(--wc),.65);font-weight:500;}

/* CONTENT SECTIONS */
.lp-content-section{padding:52px 48px;position:relative;z-index:1;}
.lp-section-inner{max-width:1100px;margin:0 auto;}
.lp-section-label{font-size:9.5px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);margin-bottom:10px;}
/* ── ROGO-GRADE TYPE LAYER ──────────────────────────────────────────────────
   The serif was already in the house (Instrument Serif, one italic accent in
   the hero). Promoting it to the full display layer is what separates an
   editorial page from a template: serif carries the headlines, the grotesk
   carries the interface, the mono carries the numbers, three voices, each
   with one job. Serif is 400 by design, so headings size UP a step and drop
   the heavy negative tracking Inter needed. */
.lp-section-h{font-family:var(--serif);font-size:clamp(30px,4vw,50px);font-weight:400;color:var(--text);line-height:1.06;letter-spacing:-.3px;margin-bottom:12px;text-wrap:balance;}
/* ONE HEADLINE FACE (owner, 1 Oct 2026): every landing heading is the editorial serif, like the hero and the
   section heads. The serif is lighter than the 800 sans these used, so each runs a size larger. */
#login .lp-reel-h,#login .lp-stack-h,#login .lp-guides-h,#login .lp-inside-h,#login .lp-price-title,#login .lp-final-h,#login .lp-stack-col h3{
  font-family:var(--serif);font-weight:400;letter-spacing:-.3px;line-height:1.06;}
#login .lp-reel-h{font-size:clamp(28px,4.4vw,46px);}
#login .lp-stack-h,#login .lp-guides-h,#login .lp-price-title{font-size:clamp(30px,4vw,50px);}
#login .lp-inside-h{font-size:clamp(28px,3.8vw,46px);}
#login .lp-final-h{font-size:clamp(32px,5.4vw,56px);}
#login .lp-stack-col h3{font-size:clamp(26px,2.6vw,32px);}
.lp-gold-text{background:linear-gradient(130deg,var(--gold),#fcd34d);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* PAIN */
.lp-pain-bg{background:#0b1222;}
.lp-pain-header{max-width:580px;margin-bottom:44px;}
.lp-pain-items{display:flex;flex-direction:column;}
.lp-pain-item{display:grid;grid-template-columns:60px 1fr;padding:24px 0;border-top:1px solid rgba(var(--wc),.05);}
.lp-pain-item:last-child{border-bottom:1px solid rgba(var(--wc),.05);}
.lp-pain-num{font-family:'DM Mono',monospace;font-size:10px;font-weight:500;color:rgba(245,158,11,.55);letter-spacing:1px;padding-top:3px;}
.lp-pain-title{font-size:16.5px;font-weight:700;color:var(--text);margin-bottom:6px;line-height:1.3;}
.lp-pain-desc{font-size:13.5px;color:rgba(var(--wc),.76);line-height:1.7;}

/* FEATURES */
.lp-features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:36px;}
.lp-feat{background:#0b1222;padding:26px 22px;border-radius:16px;border:1px solid rgba(var(--wc),.06);position:relative;overflow:hidden;transform-style:preserve-3d;transition:transform .18s cubic-bezier(.16,1,.3,1),background .18s,border-color .22s,box-shadow .25s;}
.lp-feat>*{position:relative;z-index:1;}
.lp-feat::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(245,158,11,.12),transparent 60%);}
.lp-feat:hover::after{opacity:1;}
.lp-feat:hover{background:#12213a;}
.lp-feat-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:13px;background:linear-gradient(160deg,rgba(245,158,11,.18),rgba(245,158,11,.05));border:1px solid rgba(245,158,11,.26);color:var(--gold);margin-bottom:16px;font-size:0;transition:transform .32s cubic-bezier(.16,1,.3,1),background .32s,box-shadow .32s;}
.lp-feat-icon .svgi{width:23px;height:23px;}
.lp-feat:hover .lp-feat-icon{transform:translateY(-2px) rotate(-5deg) scale(1.1);background:linear-gradient(160deg,rgba(245,158,11,.32),rgba(245,158,11,.12));box-shadow:0 10px 24px rgba(245,158,11,.22);}
.lp-feat-name{font-size:13px;font-weight:700;color:rgba(var(--wc),.82);margin-bottom:6px;}
.lp-feat-desc{font-size:12.5px;color:rgba(var(--wc),.74);line-height:1.65;}

/* TESTIMONIALS */
.lp-testi-section{padding:44px 0;background:#0b1222;overflow:hidden;}

/* PRICING */
.lp-price-wrap{padding:60px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;background:#08101f;}
.lp-price-pretitle{font-size:9.5px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;color:rgba(245,158,11,.6);margin-bottom:12px;}
.lp-price-title{font-size:clamp(26px,4vw,48px);font-weight:800;color:var(--text);letter-spacing:-1.2px;line-height:1.08;margin-bottom:44px;text-wrap:balance;}
.lp-price-card{
  max-width:440px;width:100%;position:relative;overflow:hidden;
  background:rgba(7,7,15,.88);
  border:1px solid rgba(var(--wc),.08);border-radius:24px;padding:40px 34px;
  box-shadow:0 0 80px rgba(245,158,11,.05),0 40px 80px rgba(0,0,0,.55),inset 0 0 0 .5px rgba(var(--wc),.05);
}
.lp-price-card::before{content:'';position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(245,158,11,.55),transparent);}
.lp-price-badge{display:inline-block;font-size:9px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--gold);background:rgba(245,158,11,.09);border:1px solid rgba(245,158,11,.2);border-radius:20px;padding:4px 12px;margin-bottom:18px;}
.lp-price-name{font-size:14px;font-weight:500;color:rgba(var(--wc),.78);margin-bottom:16px;}
.lp-price-amount{font-family:'DM Mono',monospace;font-size:52px;font-weight:500;color:var(--gold);letter-spacing:-2px;line-height:1;}
.lp-price-amount span{font-size:17px;font-weight:400;color:rgba(var(--wc),.28);letter-spacing:0;}
.lp-price-perday{margin-top:9px;font-size:12.5px;font-weight:700;letter-spacing:.2px;color:rgba(245,158,11,.9);}
.lp-price-perday span{color:rgba(var(--wc),.5);font-weight:500;}
.lp-price-or{font-size:13px;color:rgba(var(--wc),.58);margin:11px 0 26px;}
.lp-plans{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 0;}
.lp-plan{position:relative;display:block;text-decoration:none;color:inherit;border:1px solid rgba(var(--wc),.1);border-radius:14px;padding:16px 14px 14px;text-align:center;background:rgba(var(--wc),.02);transition:border-color .18s ease,transform .18s ease;}
.lp-plan:hover{border-color:rgba(245,158,11,.4);transform:translateY(-2px);}
.lp-plan.is-best:hover{border-color:rgba(245,158,11,.6);}
.lp-plan.is-best{border-color:rgba(245,158,11,.34);background:rgba(245,158,11,.06);}
.lp-plan-flag{position:absolute;top:-9px;left:50%;transform:translateX(-50%);font-size:8.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:#0a0a12;background:var(--gold);border-radius:20px;padding:3px 10px;white-space:nowrap;}
.lp-plan-name{font-size:10.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:rgba(var(--wc),.42);margin-bottom:7px;}
.lp-plan-price{font-family:'DM Mono',monospace;font-size:29px;font-weight:500;color:var(--gold);letter-spacing:-1.2px;line-height:1;}
.lp-plan-price s{font-size:16px;color:rgba(var(--wc),.3);margin-right:7px;text-decoration-thickness:1px;}
.lp-plan-price span{font-size:13px;font-weight:400;color:rgba(var(--wc),.3);letter-spacing:0;}
.lp-plan-day{margin-top:7px;font-size:11.5px;font-weight:700;color:rgba(245,158,11,.85);}
.lp-founding{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:18px;padding-top:17px;border-top:1px solid rgba(var(--wc),.09);text-align:left;}
.lp-founding b{display:block;font-size:13px;color:var(--text);}
.lp-founding small{display:block;margin-top:4px;font-size:11.5px;line-height:1.6;color:var(--text3);max-width:52ch;}
.lp-founding small b{display:inline;color:rgba(245,158,11,.9);}
.lp-founding a{flex:none;text-decoration:none;font-size:12px;font-weight:700;color:var(--gold);border:1px solid rgba(245,158,11,.3);border-radius:9px;padding:9px 14px;white-space:nowrap;}
@media(max-width:560px){.lp-plans{grid-template-columns:1fr;gap:14px;}.lp-founding{flex-direction:column;align-items:flex-start;}}
.lp-price-or strong{color:rgba(var(--wc),.7);}
.lp-price-features{list-style:none;padding:22px 0 0;margin:0 0 28px;border-top:1px solid rgba(var(--wc),.06);text-align:left;display:flex;flex-direction:column;gap:9px;}
.lp-price-features li{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:rgba(var(--wc),.74);line-height:1.5;}
.lp-price-features li::before{content:'✓';color:var(--gold);font-weight:800;flex-shrink:0;margin-top:1px;}
.lp-price-cta{display:block;width:100%;background:linear-gradient(145deg,var(--gold),#c8880e);color:#060a12;font-weight:800;font-size:14px;letter-spacing:-.1px;padding:15px 24px;border-radius:12px;border:none;cursor:pointer;font-family:'Inter',system-ui,sans-serif;box-shadow:0 6px 24px rgba(245,158,11,.28);transition:transform .14s,box-shadow .14s;text-decoration:none;text-align:center;box-sizing:border-box;}
.lp-price-cta:hover{transform:translateY(-1px);box-shadow:0 10px 32px rgba(245,158,11,.4);}

/* ── THE 3-GATE SYSTEM ── */
.lp-gates-section{background:linear-gradient(180deg,#0a101e 0%,#0c1322 100%);position:relative;padding:82px 24px;}
.lp-gates-section::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(245,158,11,.4),transparent);}
.lp-gates-inner{max-width:1040px;margin:0 auto;}
.lp-gates-badge{display:inline-flex;align-items:center;gap:7px;padding:5px 14px;background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.22);border-radius:20px;font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:18px;}
.lp-gates-sub{max-width:600px;margin:14px auto 0;font-size:15px;color:var(--text2);line-height:1.7;}
.lp-gates-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px;}
.lp-gate{position:relative;background:rgba(17,23,38,.6);border:1px solid rgba(var(--wc),.08);border-radius:18px;padding:26px 22px;overflow:hidden;transition:border-color .2s,transform .2s;}
.lp-gate:hover{border-color:var(--gold-border);transform:translateY(-3px);}
.lp-gate-line{position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--gold),transparent);}
.lp-gate-num{font-size:11px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);opacity:.85;margin-bottom:14px;}
.lp-gate-ico{font-size:26px;margin-bottom:12px;display:block;line-height:1;}
.lp-gate-title{font-size:19px;font-weight:800;color:var(--text);letter-spacing:-.3px;margin-bottom:9px;}
.lp-gate-desc{font-size:13.5px;color:var(--text2);line-height:1.62;}
.lp-gates-foot{margin-top:34px;font-size:13px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);}
.lp-gates-cover{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px;}
.lp-cover-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:20px;background:rgba(var(--wc),.04);border:1px solid rgba(var(--wc),.09);font-size:12px;font-weight:600;color:var(--text);}
.lp-cover-chip b{color:var(--gold);font-weight:800;}
@media(max-width:760px){.lp-gates-grid{grid-template-columns:1fr;}.lp-gates-section{padding:52px 16px;}}

/* RESPONSIVE */
@media(max-width:900px){
  .lp-glass-card{padding:32px 28px;}
  .lp-hero-h1{font-size:clamp(24px,4.5vw,32px);}
  .lp-pair-1,.lp-pair-2,.lp-pair-5{display:none;}
  .lp-pair-3{top:10%;right:12px;}
  .lp-pair-4{top:28%;right:12px;}
  .lp-pair-6{bottom:14%;right:12px;}
  .lp-content-section{padding:56px 24px;}
  .lp-features-grid{grid-template-columns:repeat(2,1fr);}
  .lp-price-wrap{padding:60px 20px;}
}
@media(max-width:600px){
  .lp-hero{align-items:flex-start;padding-top:env(safe-area-inset-top,0px);}  /* clear the notch ONCE; the wrap adds the small visual gap (was double-stacked with the wrap's safe-area, causing a big top gap in iOS in-app browsers) */
  /* smaller card = clear bright chart band shows around + below it */
  .lp-glass-card{width:calc(100% - 34px);max-width:400px;padding:19px 16px;border-radius:18px;
    background:rgba(8,12,22,.6);
    backdrop-filter:blur(12px) saturate(1.5);-webkit-backdrop-filter:blur(12px) saturate(1.5);}
  .lp-hero-canvas{filter:brightness(1.18) contrast(1.06);}
  /* darken only the TOP (behind the card, for legibility); leave the BOTTOM band
     clear so the bright candlestick chart fills it, turns dead space into "trading" */
  .lp-hero-vignette{background:linear-gradient(180deg,
    rgba(8,16,31,.5) 0%,rgba(8,16,31,.18) 38%,transparent 60%,transparent 100%);}
  .lp-pair-3,.lp-pair-4,.lp-pair-6{display:none;}
  .lp-auth-row{flex-direction:column;}
  .lp-auth-btn{width:100%;}
  .lp-features-grid{grid-template-columns:1fr;}
  .lp-hero-h1{font-size:22px;}
  .lp-hero-p{font-size:12.5px;line-height:1.5;}
  /* slim every part of the card so it takes less height */
  .lp-brand{margin-bottom:10px;}
  .lp-hero-badge{margin-bottom:9px;}
  .lp-auth-box{margin:12px 0;padding:12px;}
  .login-win-pill{padding:5px 9px;font-size:10px;gap:5px;}   /* smaller pills = fewer wrap rows */
  .lp-hero-stats-row{padding-top:11px;}      /* compact, not hidden, the run-up numbers are a hook */
  /* Phone hero was running well past one screen, tighten the rhythm so the
     card reads as one clean block rather than a long scroll. */
  .lp-glass-card{padding:16px 14px;}
  .lp-hero-p{margin-bottom:10px;}
  .login-wins-row{gap:5px;}
  .lp-join-btn{margin-top:13px;}
    .lp-join-note{margin-top:7px;font-size:10.5px;line-height:1.45;}
  .lp-hero-stats-row{padding-top:9px;margin-top:9px;}
  .lp-hs-n{font-size:15px;} .lp-hs-l{font-size:8.5px;letter-spacing:.06em;}
  .lp-hs-n{font-size:16px;}
  .lp-hs-l{font-size:9px;margin-top:3px;}
  .lp-pain-item{grid-template-columns:40px 1fr;}
  .lp-content-section{padding:32px 14px;}
  .lp-gallery-section{padding:28px 0;}
  .lp-testi-section{padding:28px 0;}
  .lp-price-wrap{padding:40px 14px;}
  .lp-section-h{font-size:26px;}
  .lp-price-title{font-size:22px;}
  .asset-chart{height:200px;}
}

/* ── SCROLL-REVEAL MOTION (progressive enhancement; class added by JS only,
   so if JS fails nothing is ever hidden). Fade + rise as sections enter view. */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.08s;}
.reveal.d2{transition-delay:.16s;}
.reveal.d3{transition-delay:.24s;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important;}}
/* ── SCROLL MOTION (Apple-style, at zero cost) ───────────────────────────────
   Three effects, three hard rules learned on this exact page:
     • no scroll listeners, a set of them caused the first-swipe-sticks bug;
       everything here is CSS scroll-driven, scrubbed on the compositor
     • transform + opacity only, the animated blurs were what tanked the
       landing page, so nothing here touches filter, layout or paint
     • @supports-gated, browsers without animation-timeline (older Safari)
       simply get today's page, and reduced-motion turns all of it off */

/* 1 · Staggered reveals. The IO system fades a grid in as ONE block; Apple's
   trick is that the children arrive in sequence. Children only hide when the
   parent carries .reveal (added by JS below the fold), so with JS off nothing
   is ever invisible, and the existing 3s safety net still releases everything. */
@media (prefers-reduced-motion: no-preference){
  .lp-features-grid.reveal > *, .lp-gates-grid.reveal > *,
  .lp-compare-col-wrap.reveal > *, .lp-change-col.reveal > *,
  .lp-faq-list.reveal > *{
    opacity:0; transform:translateY(22px);
    transition:opacity .65s cubic-bezier(.16,1,.3,1), transform .65s cubic-bezier(.16,1,.3,1);
  }
  .lp-features-grid.reveal.in > *, .lp-gates-grid.reveal.in > *,
  .lp-compare-col-wrap.reveal.in > *, .lp-change-col.reveal.in > *,
  .lp-faq-list.reveal.in > *{ opacity:1; transform:none; }
  /* Delays scoped to the SAME five containers as the hide rule above. The bare
     .reveal.in > * form delayed every child transition in every revealed
     section, including button hover states, which would have felt broken. */
  :is(.lp-features-grid,.lp-gates-grid,.lp-compare-col-wrap,.lp-change-col,.lp-faq-list).reveal.in > :nth-child(1){transition-delay:.05s;}
  :is(.lp-features-grid,.lp-gates-grid,.lp-compare-col-wrap,.lp-change-col,.lp-faq-list).reveal.in > :nth-child(2){transition-delay:.13s;}
  :is(.lp-features-grid,.lp-gates-grid,.lp-compare-col-wrap,.lp-change-col,.lp-faq-list).reveal.in > :nth-child(3){transition-delay:.21s;}
  :is(.lp-features-grid,.lp-gates-grid,.lp-compare-col-wrap,.lp-change-col,.lp-faq-list).reveal.in > :nth-child(4){transition-delay:.29s;}
  :is(.lp-features-grid,.lp-gates-grid,.lp-compare-col-wrap,.lp-change-col,.lp-faq-list).reveal.in > :nth-child(5){transition-delay:.37s;}
  :is(.lp-features-grid,.lp-gates-grid,.lp-compare-col-wrap,.lp-change-col,.lp-faq-list).reveal.in > :nth-child(6){transition-delay:.45s;}
  :is(.lp-features-grid,.lp-gates-grid,.lp-compare-col-wrap,.lp-change-col,.lp-faq-list).reveal.in > :nth-child(7){transition-delay:.53s;}
  :is(.lp-features-grid,.lp-gates-grid,.lp-compare-col-wrap,.lp-change-col,.lp-faq-list).reveal.in > :nth-child(n+8){transition-delay:.6s;}
}

/* 2 · The hero settle, the one scroll-scrubbed hero moment. As the hero
   leaves through the top it eases back and dims, which is what makes the page
   feel like it responds to the hand rather than merely passing by. Scrubbed by
   the element's own exit progress; runs off the main thread entirely. */
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion: no-preference){
    /* On the WRAP, not the demo card, the card already runs its cardIn entry
       animation, and CSS animations do not merge: whichever rule lands later
       simply replaces the other. The wrap carries nothing, and settling the
       whole hero (auth box included) recedes as one piece anyway. */
    .lp-hero-wrap{
      animation:heroSettle linear both;
      animation-timeline:view();
      animation-range:exit 0% exit 90%;
    }
    @keyframes heroSettle{
      to{ transform:scale(.955) translateY(-12px); opacity:.45; }
    }

/* 3 · A whisper of parallax on the clip videos: the media drifts a few pixels
   inside its rounded frame while the section crosses the viewport. Scaled 6%
   so the drift never exposes an edge. Subtle on purpose, the drift should be
   felt, not seen. */
    .lp-clip .lp-clip-v{
      animation:clipDrift linear both;
      animation-timeline:view();
      animation-range:cover 0% cover 100%;
      transform:scale(1.06);
    }
    @keyframes clipDrift{
      from{ transform:scale(1.06) translateY(10px); }
      to{   transform:scale(1.06) translateY(-10px); }
    }
  }
}
/* Framer-style hover polish, desktop pointers only, so mobile pays nothing */
@media(hover:hover) and (pointer:fine){
  .lp-gate,.lp-price-card,.lp-features-grid>*,.lp-change-col.after,.lp-compare-col-wrap.rbt-col{transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s,border-color .22s;}
  .lp-gate:hover,.lp-features-grid>*:hover{transform:translateY(-4px);border-color:var(--gold-border);box-shadow:0 14px 40px rgba(0,0,0,.42),0 0 0 1px rgba(245,158,11,.14);}
  .lp-change-col.after:hover,.lp-compare-col-wrap.rbt-col:hover{transform:translateY(-3px);box-shadow:0 16px 44px rgba(245,158,11,.14);}
  .lp-price-card:hover{transform:translateY(-4px);box-shadow:0 18px 52px rgba(245,158,11,.2);}
  .mcard{transition:transform .18s cubic-bezier(.16,1,.3,1),box-shadow .18s,border-color .18s;}
  .mcard:hover{transform:translateY(-3px);border-color:var(--gold-border);box-shadow:0 12px 30px rgba(0,0,0,.4),0 0 0 1px rgba(245,158,11,.12);}
}

/* ── HERO LOAD MOTION: wins tumble in (randomised per pill), stats pop + run-up + glow ── */
@keyframes winTumble{
  0%{opacity:0;transform:translate(var(--tx,0), var(--ty,-18px)) rotate(var(--rot,-9deg)) scale(.82);}
  55%{opacity:1;transform:translate(0,4px) rotate(calc(var(--rot,-9deg) * -0.16)) scale(1.05);}
  100%{opacity:1;transform:translate(0,0) rotate(0) scale(1);}
}
.login-win-pill.tumble{opacity:0;animation:winTumble .62s cubic-bezier(.34,1.56,.64,1) both;}
@keyframes hsPop{
  0%{opacity:0;transform:scale(.5) translateY(8px);}
  68%{opacity:1;transform:scale(1.13) translateY(0);}
  100%{opacity:1;transform:scale(1);}
}
.lp-hs.pop{animation:hsPop .9s cubic-bezier(.34,1.4,.64,1) both;}
/* number keeps a soft breathing gold glow after it lands */
.lp-hs.pop .lp-hs-n{color:var(--gold2);animation:hsGlow 2.8s ease-in-out 4;}
@keyframes hsGlow{
  0%,100%{text-shadow:0 0 10px rgba(252,211,77,.35),0 0 3px rgba(252,211,77,.5);}
  50%{text-shadow:0 0 26px rgba(252,211,77,.72),0 0 11px rgba(252,211,77,.55);}
}
/* whole hero card gently lifts + fades as one piece on scroll (JS sets --exit 0..1) */
.lp-hero-exit{transform:translateY(calc(var(--exit,0) * -46px));opacity:calc(1 - var(--exit,0));will-change:transform,opacity;}
@media(prefers-reduced-motion:reduce){
  .login-win-pill.tumble{animation:none;opacity:1;}
  .lp-hs.pop{animation:none;opacity:1;}
  .lp-hs.pop .lp-hs-n{animation:none;}
  .lp-hero-exit{transform:none!important;opacity:1!important;}
}

/* ── HERO BADGE, stamp style, not a generic AI pill ── */
.lp-hero-badge{display:inline-flex;align-items:center;gap:0;padding:0;background:none;border:none;border-radius:0;margin-bottom:11px;transform:rotate(-0.8deg);transform-origin:left center;}
.lp-hero-badge-inner{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:rgba(201,59,59,.08);border:1.5px solid rgba(201,59,59,.3);border-right:none;border-radius:3px 0 0 3px;font-size:9.5px;font-weight:900;letter-spacing:1.8px;text-transform:uppercase;color:rgba(201,59,59,.9);}
.lp-hero-badge-sep{width:1.5px;height:30px;background:linear-gradient(180deg,transparent,rgba(var(--wc),.15),transparent);}
.lp-hero-badge-right{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;background:rgba(var(--wc),.04);border:1.5px solid rgba(var(--wc),.1);border-left:none;border-radius:0 3px 3px 0;font-size:9.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:rgba(var(--wc),.65);}
.lp-hero-badge-dot{width:5px;height:5px;border-radius:50%;background:#22a06b;animation:pulse-gold 1.8s ease-in-out 4;flex-shrink:0;}
.lp-hero-badge-cross{font-size:11px;font-weight:900;line-height:1;}
@keyframes pulse-gold{0%,100%{opacity:1;}50%{opacity:.35;}}

/* ── ANTI-AI BANNER ── */
.lp-antiai{padding:80px 24px;background:#060c18;text-align:center;position:relative;overflow:hidden;}
.lp-antiai::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(245,158,11,.35),transparent);}
.lp-antiai::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(245,158,11,.18),transparent);}
.lp-antiai-bg-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:300px;background:radial-gradient(ellipse,rgba(245,158,11,.06) 0%,transparent 70%);pointer-events:none;}
.lp-antiai-pill{display:inline-flex;align-items:center;gap:7px;padding:5px 14px;background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.2);border-radius:20px;font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:rgba(245,158,11,.75);margin-bottom:22px;}
.lp-antiai-h{font-family:var(--serif);font-size:clamp(30px,4.5vw,56px);font-weight:400;color:var(--text);letter-spacing:-.3px;line-height:1.05;margin:0 0 20px;text-wrap:balance;}
.lp-antiai-h em{color:var(--gold);font-style:normal;}
.lp-id{display:flex;gap:22px;align-items:center;text-align:left;max-width:700px;margin:36px auto 0;padding:24px 28px;background:linear-gradient(160deg,rgba(245,158,11,.07),rgba(255,255,255,.02) 45%);border:1px solid rgba(245,158,11,.28);border-radius:18px;box-shadow:0 24px 60px -30px rgba(245,158,11,.28);}
.lp-id-ava img{display:block;width:88px;height:88px;border-radius:50%;border:2px solid rgba(245,158,11,.55);padding:3px;background:#0a0e18;box-shadow:0 0 28px rgba(245,158,11,.22);}
.lp-id-body{flex:1;min-width:0;}
.lp-id-name{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.lp-id-who{font-size:17px;font-weight:800;color:var(--text);letter-spacing:-.2px;}
.lp-id-who b{color:var(--gold);}
.lp-id-who .lp-id-org{font-weight:600;color:rgba(var(--wc),.6);font-size:12.5px;}
.lp-id-total{margin-left:auto;font-size:11px;font-weight:800;letter-spacing:.3px;color:var(--gold);background:rgba(245,158,11,.09);border:1px solid rgba(245,158,11,.32);border-radius:14px;padding:4px 12px;white-space:nowrap;}
.lp-id-line{font-size:13px;color:rgba(var(--wc),.74);line-height:1.65;margin-top:7px;}
.lp-id-line a{color:var(--gold);text-decoration:none;}
.lp-id-socials{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px;}
/* Deliberately NOT links, this page's one job is the Substack CTA, and outbound
   profile links were an exit ramp right before the pricing section. */
.lp-id-socials span{font-size:10.5px;font-weight:700;color:rgba(var(--wc),.78);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.11);border-radius:14px;padding:4px 11px;white-space:nowrap;}
@media(max-width:560px){
  .lp-id{flex-direction:column;text-align:center;gap:14px;padding:22px 16px;}
  .lp-id-name{justify-content:center;}
  .lp-id-total{margin-left:0;}
  .lp-id-socials{justify-content:center;}
}
.lp-antiai-sub{font-size:15px;color:rgba(var(--wc),.72);max-width:560px;margin:0 auto;line-height:1.75;}
.lp-antiai-sub a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(245,158,11,.35);}

/* ── HOW IT WORKS ── */
.lp-how-section{padding:80px 24px;background:#0a101e;position:relative;}
.lp-how-section::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--wc),.07),transparent);}
.lp-how-inner{max-width:920px;margin:0 auto;}
.lp-how-header{text-align:center;margin-bottom:56px;}
.lp-how-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;position:relative;}
.lp-how-steps::before{content:'';position:absolute;top:27px;left:calc(16.67% + 20px);right:calc(16.67% + 20px);height:1px;border-top:1px dashed rgba(245,158,11,.3);pointer-events:none;}
.lp-how-step{text-align:center;padding:0 28px;position:relative;z-index:1;}
.lp-how-num-wrap{width:54px;height:54px;border-radius:50%;background:rgba(245,158,11,.09);border:1px solid rgba(245,158,11,.3);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;}
.lp-how-num{font-family:'DM Mono',monospace;font-size:17px;font-weight:700;color:var(--gold);}
.lp-how-step-title{font-size:15.5px;font-weight:700;color:var(--text);margin-bottom:9px;letter-spacing:-.2px;}
.lp-how-step-desc{font-size:13px;color:rgba(var(--wc),.72);line-height:1.72;}

/* ── STICKY CONVERSION NAV, slides in after the hero ── */
.lp-nav{position:fixed;top:0;left:0;right:0;z-index:120;transform:translateY(-110%);transition:transform .4s cubic-bezier(.16,1,.3,1);
  background:rgba(7,7,15,.88);border-bottom:1px solid rgba(var(--wc),.07);}
@supports (backdrop-filter:blur(1px)){ @media(min-width:681px){ .lp-nav{background:rgba(7,7,15,.72);backdrop-filter:blur(12px) saturate(1.3);-webkit-backdrop-filter:blur(12px) saturate(1.3);} } }
.lp-nav.show{transform:translateY(0);}
.lp-nav-inner{max-width:1060px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 18px;}
.lp-nav-brand{display:flex;align-items:center;gap:9px;font-family:var(--wordmark);font-weight:800;font-size:14.5px;color:var(--text);letter-spacing:.3px;}
.lp-nav-brand img{width:26px;height:26px;border-radius:7px;}
.lp-nav-brand em{font-style:normal;color:var(--gold);}
.lp-nav-actions{display:flex;align-items:center;gap:9px;}
.lp-nav-login{font-size:12.5px;font-weight:700;color:var(--text2);text-decoration:none;padding:9px 13px;border-radius:9px;transition:.15s;}
.lp-nav-login:hover{color:var(--text);background:rgba(var(--wc),.06);}
.lp-nav-brand,.lp-nav-login,.lp-nav-cta{white-space:nowrap;}
@media(max-width:400px){ .lp-nav-inner{gap:8px;padding:9px 12px;} .lp-nav-actions{gap:4px;} .lp-nav-login{padding:9px 8px;} .lp-nav-cta{font-size:12px;padding-left:12px;padding-right:12px;} .lp-nav-brand{font-size:13.5px;gap:7px;} }
.lp-nav-cta{font-size:13px;font-weight:800;color:#060a12;text-decoration:none;background:linear-gradient(145deg,#f59e0b,#c8880e);
  padding:10px 17px;border-radius:10px;box-shadow:0 4px 16px rgba(245,158,11,.32);transition:transform .14s,box-shadow .14s;white-space:nowrap;}
.lp-nav-cta:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(245,158,11,.45);}

/* ── FINAL CTA, aurora send-off ── */
.lp-final-section{position:relative;padding:110px 24px 120px;overflow:hidden;background:#070c17;text-align:center;}
.lp-final-section::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(245,158,11,.45),transparent);}
.lp-final-aurora{position:absolute;inset:-40% -20%;pointer-events:none;filter:blur(70px);opacity:.5;
  background:
    radial-gradient(38% 42% at 28% 62%,rgba(245,158,11,.20),transparent 70%),
    radial-gradient(34% 38% at 72% 38%,rgba(37,99,235,.16),transparent 70%),
    radial-gradient(30% 34% at 55% 78%,rgba(34,160,107,.10),transparent 70%);
  animation:lpAurora 16s ease-in-out infinite alternate;}
@keyframes lpAurora{0%{transform:translate3d(-3%,-2%,0) scale(1);}100%{transform:translate3d(3%,2%,0) scale(1.08);}}
@media(prefers-reduced-motion:reduce){.lp-final-aurora{animation:none;}}
@media(max-width:680px){.lp-final-aurora{filter:blur(46px);opacity:.42;}.lp-final-section{padding:72px 18px 84px;}}
.lp-final-inner{position:relative;max-width:640px;margin:0 auto;}
.lp-final-h{font-size:clamp(30px,5.4vw,48px);font-weight:800;letter-spacing:-1.4px;line-height:1.08;color:var(--text);margin:0 0 16px;}
.lp-final-accent{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0;color:var(--gold);}
.lp-final-sub{font-size:15px;color:rgba(var(--wc),.72);line-height:1.65;margin:0 0 26px;}
.lp-final-btn{max-width:430px;margin:0 auto;}
.lp-final-trust{margin-top:18px;font-size:11.5px;color:rgba(var(--wc),.5);letter-spacing:.2px;}

/* ── PRICING: the two-product bundle ── */
.lp-price-duo{display:flex;align-items:stretch;gap:10px;margin:18px 0 6px;text-align:left;}
.lp-price-duo-item{flex:1;display:flex;gap:10px;align-items:flex-start;background:rgba(245,158,11,.05);border:1px solid rgba(245,158,11,.18);border-radius:12px;padding:12px 13px;}
.lp-price-duo-item span{font-size:19px;line-height:1;}
.lp-price-duo-item b{display:block;font-size:13px;color:var(--text);letter-spacing:-.1px;}
.lp-price-duo-item small{display:block;font-size:10.5px;color:var(--text3);line-height:1.45;margin-top:3px;}
.lp-price-duo-plus{align-self:center;font-size:16px;font-weight:900;color:var(--gold);}
.lp-price-under{margin-top:12px;font-size:11.5px;color:var(--text3);text-align:center;}
@media(max-width:560px){.lp-price-duo{flex-direction:column;}.lp-price-duo-plus{align-self:center;transform:rotate(90deg);}}

/* ── marquee polish: soft edge fade so the galleries feel embedded ── */
.lp-marquee{-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}

/* ── SELL THE CHANGE (before / after) ── */
.lp-eyebrow{font-size:10px;font-weight:800;letter-spacing:2.2px;text-transform:uppercase;color:var(--gold);margin-bottom:14px;}
.lp-change-section{padding:76px 24px;background:#070c17;position:relative;}
.lp-change-section::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(245,158,11,.35),transparent);}
.lp-change-inner{max-width:880px;margin:0 auto;}
.lp-change-head{text-align:center;margin-bottom:40px;}
.lp-change-sub{font-size:15px;color:rgba(var(--wc),.62);margin-top:12px;}
.lp-change-split{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:stretch;}
.lp-change-col{border-radius:16px;padding-bottom:8px;border:1px solid rgba(var(--wc),.07);background:rgba(var(--wc),.015);}
.lp-change-col.before{border-color:rgba(201,59,59,.18);}
.lp-change-col.after{border-color:rgba(245,158,11,.26);background:rgba(245,158,11,.03);}
.lp-change-col-h{padding:15px 20px 13px;font-size:13px;font-weight:800;letter-spacing:.2px;}
.lp-change-col.before .lp-change-col-h{color:rgba(255,124,124,.92);}
.lp-change-col.after .lp-change-col-h{color:var(--gold);}
.lp-change-item{padding:11px 20px;font-size:13px;line-height:1.45;border-top:1px solid rgba(var(--wc),.045);}
.lp-change-col.before .lp-change-item{color:rgba(var(--wc),.55);}
.lp-change-col.after .lp-change-item{color:rgba(var(--wc),.86);}
.lp-change-arrow{display:flex;align-items:center;justify-content:center;font-size:26px;color:var(--gold);font-weight:800;}
.lp-change-cta{max-width:430px;margin:34px auto 0;}
@media(max-width:700px){
  .lp-change-split{grid-template-columns:1fr;}
  .lp-change-arrow{transform:rotate(90deg);padding:2px 0;}
  .lp-change-section{padding:52px 18px;}
}

/* ── SIGNAL REPLAY REEL, "a level called, then hit" proof ── */
.lp-reel-section{padding:72px 24px 58px;background:#070c17;position:relative;}
.lp-reel-section::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(245,158,11,.35),transparent);}
.lp-reel-inner{max-width:840px;margin:0 auto;}
.lp-reel-head{text-align:center;margin-bottom:26px;}
.lp-reel-eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:9.5px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--gold);background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.2);padding:5px 12px;border-radius:999px;margin-bottom:14px;}
.lp-reel-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:#22a06b;box-shadow:0 0 0 3px rgba(34,160,107,.16);}
.lp-reel-h{font-size:clamp(24px,4vw,34px);font-weight:800;letter-spacing:-1px;line-height:1.12;color:var(--text);margin:0 0 10px;}
.lp-reel-h em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0;color:var(--gold);}
.lp-reel-sub{font-size:14px;color:rgba(var(--wc),.64);line-height:1.6;margin:0 auto;max-width:520px;}
.lp-reel-stage{overflow:hidden;}
.lp-reel-track{display:flex;transition:transform .55s cubic-bezier(.16,1,.3,1);}
.lp-reel-card{flex:0 0 100%;padding:2px;box-sizing:border-box;}
.lp-reel-glass{background:rgba(var(--wc),.02);border:1px solid rgba(var(--wc),.08);border-radius:18px;overflow:hidden;box-shadow:0 26px 64px -22px rgba(0,0,0,.75);}
@supports(backdrop-filter:blur(1px)){.lp-reel-glass{backdrop-filter:blur(9px);}}
.lp-reel-cardhead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-bottom:1px solid rgba(var(--wc),.06);}
.lp-reel-pair{display:flex;align-items:center;gap:9px;}
.lp-reel-pairname{font-size:15px;font-weight:800;color:var(--text);letter-spacing:.2px;}
.lp-reel-tf{font-size:11px;color:var(--text3);}
.lp-reel-dir{font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;padding:4px 10px;border-radius:6px;}
.lp-reel-dir.buy{background:rgba(34,160,107,.12);color:#3fbb85;border:1px solid rgba(34,160,107,.3);}
.lp-reel-dir.sell{background:var(--red-dim);color:#db6c6c;border:1px solid var(--red-border);}
.lp-reel-when{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:rgba(var(--wc),.6);white-space:nowrap;}
.lp-reel-when .dot{width:6px;height:6px;border-radius:50%;background:#22a06b;box-shadow:0 0 0 3px rgba(34,160,107,.16);}
.lp-reel-chart{position:relative;width:100%;display:block;background:linear-gradient(180deg,rgba(10,16,32,.55),rgba(6,10,20,.15));}
.lp-reel-chart svg{width:100%;height:auto;display:block;}
.lp-reel-shot{position:relative;aspect-ratio:1400/842;background:#05080f;overflow:hidden;}
.lp-reel-shot-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease;-webkit-user-select:none;user-select:none;}
.lp-reel-shot-img.on{opacity:1;}
.lp-reel-stagetag{position:absolute;left:12px;right:12px;bottom:12px;z-index:2;display:flex;align-items:center;gap:9px;background:rgba(3,6,14,.68);border:1px solid rgba(var(--wc),.12);border-radius:11px;padding:8px 12px;font-size:12.5px;color:rgba(var(--wc),.9);line-height:1.35;}
@supports(backdrop-filter:blur(1px)){.lp-reel-stagetag{backdrop-filter:blur(7px);}}
.lp-reel-stagetag .k{flex-shrink:0;width:21px;height:21px;border-radius:50%;background:var(--gold);color:#060a12;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center;}
.lp-reel-stagetag.s2{border-color:rgba(34,160,107,.42);}
.lp-reel-stagetag.s2 .k{background:#22a06b;}
.lp-reel-stagetag b{color:var(--text);font-weight:800;}
.lp-reel-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(var(--wc),.06);border-top:1px solid rgba(var(--wc),.06);}
.lp-reel-step{display:flex;align-items:center;justify-content:center;gap:7px;background:#080d18;border:none;color:var(--text3);font-family:inherit;font-size:11.5px;font-weight:700;padding:10px 6px;cursor:pointer;transition:.16s;-webkit-tap-highlight-color:transparent;}
.lp-reel-step .n{width:17px;height:17px;border-radius:50%;background:rgba(var(--wc),.1);color:rgba(var(--wc),.6);font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;transition:.16s;flex-shrink:0;}
.lp-reel-step.on{color:var(--text);}
.lp-reel-step.on .n{background:var(--gold);color:#060a12;}
.lp-reel-step:hover{color:var(--text);}
.lp-reel-foot{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(var(--wc),.06);border-top:1px solid rgba(var(--wc),.06);}
.lp-reel-stat{background:#080d18;padding:11px 8px;text-align:center;}
.lp-reel-stat .l{font-size:8.5px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--text3);margin-bottom:3px;}
.lp-reel-stat .v{font-size:14px;font-weight:800;color:var(--text);font-family:'DM Mono',monospace;letter-spacing:-.2px;}
.lp-reel-stat .v.pos{color:#3fbb85;}
.lp-reel-stat.result{background:rgba(245,158,11,.06);}
.lp-reel-fomo{display:flex;align-items:flex-start;gap:9px;padding:13px 18px;border-top:1px solid rgba(var(--wc),.06);font-size:12.5px;color:rgba(var(--wc),.72);line-height:1.5;}
.lp-reel-fomo .ic{color:var(--gold);flex-shrink:0;font-size:14px;margin-top:1px;}
.lp-reel-fomo b{color:var(--text);font-weight:800;}
.lp-reel-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px;}
.lp-reel-arrow{width:38px;height:38px;border-radius:50%;border:1px solid rgba(var(--wc),.14);background:rgba(var(--wc),.03);color:var(--text);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;-webkit-tap-highlight-color:transparent;line-height:1;}
.lp-reel-arrow:hover{background:rgba(245,158,11,.14);border-color:rgba(245,158,11,.4);}
.lp-reel-dots{display:flex;gap:7px;}
.lp-reel-dot{height:8px;width:8px;border-radius:50%;background:rgba(var(--wc),.22);cursor:pointer;transition:.22s;padding:0;border:none;}
.lp-reel-dot.on{background:var(--gold);width:22px;border-radius:5px;}
.lp-ticker{margin-top:30px;border-top:1px solid rgba(var(--wc),.06);border-bottom:1px solid rgba(var(--wc),.06);overflow:hidden;padding:11px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);}
.lp-ticker-track{display:inline-flex;white-space:nowrap;animation:tickerScroll 36s linear infinite;}
.lp-ticker:hover .lp-ticker-track{animation-play-state:paused;}
@media(prefers-reduced-motion:reduce){.lp-ticker-track{animation:none;}}
.lp-tick{display:inline-flex;align-items:center;gap:8px;padding:0 18px;font-size:12px;font-weight:700;color:rgba(var(--wc),.62);border-right:1px solid rgba(var(--wc),.07);}
.lp-tick b{color:var(--text);}
.lp-tick .d{font-size:9px;font-weight:800;letter-spacing:.5px;padding:2px 6px;border-radius:4px;}
.lp-tick .d.buy{background:rgba(34,160,107,.14);color:#3fbb85;}
.lp-tick .d.sell{background:var(--red-dim);color:#db6c6c;}
.lp-tick .p{color:#3fbb85;font-family:'DM Mono',monospace;}
@keyframes tickerScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media(max-width:700px){
  .lp-reel-section{padding:52px 16px 44px;}
  .lp-reel-foot{grid-template-columns:repeat(4,1fr);}
  .lp-reel-stat{padding:9px 4px;}
  .lp-reel-stat .v{font-size:12px;}
  .lp-reel-cardhead{flex-wrap:wrap;row-gap:8px;}
}

/* ── APP DEMO, silent loop lives in the hero beside the glass card (SaaS-style) ── */
.lp-hero-wrap{position:relative;z-index:10;display:flex;align-items:center;justify-content:center;gap:30px;width:100%;max-width:1300px;padding:30px 24px;}
/* The wrap was pinned at 1300px, so on a 1900px screen ~600px sat empty either
   side while the demo was squeezed. The source footage is 2560x1440, so the
   stage can grow a long way before anything upscales. */
@media(min-width:1440px){ .lp-hero-wrap{max-width:1500px;gap:38px;} }
@media(min-width:1720px){ .lp-hero-wrap{max-width:1680px;gap:44px;padding:30px 32px;} }
/* Owner: the walkthrough "looks small until expanded". At wide widths the
   video is the strongest proof on the page, give it the larger share. */
.lp-hero-demo{flex:1.35 1 0;min-width:0;max-width:1120px;border-radius:24px;border:1px solid rgba(245,158,11,.38);
  box-shadow:0 0 0 1px rgba(245,158,11,.14),0 24px 70px -18px rgba(0,0,0,.85),0 0 60px rgba(245,158,11,.2),0 0 150px rgba(245,158,11,.1);
  animation:cardIn .85s cubic-bezier(.16,1,.3,1) .12s both;}
@media(hover:hover) and (pointer:fine){
  .lp-hero-demo{transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s;}
  .lp-hero-demo:hover{transform:translateY(-3px);box-shadow:0 0 0 1px rgba(245,158,11,.22),0 30px 80px -18px rgba(0,0,0,.9),0 0 80px rgba(245,158,11,.3),0 0 180px rgba(245,158,11,.14);}
}
@media(max-width:1080px){
  .lp-hero-wrap{flex-direction:column;gap:20px;padding:28px 18px;}
  .lp-hero-demo{width:100%;max-width:920px;flex:none;}   /* was 560: on tablets it left wide empty margins (owner, 13 Oct 2026) */
}
@media(max-width:680px){
  .lp-hero-wrap{padding:12px 14px 26px;gap:15px;}  /* fixed top gap; notch clearance handled once by .lp-hero */
}
/* HERO, 2 Oct 2026: one column of proof beside the card, starting at its top edge */
.lp-hero-side{flex:1.35 1 0;min-width:0;max-width:1120px;display:flex;flex-direction:column;gap:16px;animation:cardIn .85s cubic-bezier(.16,1,.3,1) .12s both;}
.lp-hero-side .lp-hero-demo{flex:none;width:100%;max-width:none;animation:none;}
.lp-hero-side .lp-hero-stats-row{margin-top:2px;}
.lp-proof{display:flex;align-items:center;gap:0;text-decoration:none;color:inherit;padding:0 6px 0 18px;height:58px;border-radius:14px;
  border:1px solid rgba(var(--wc),.09);background:rgba(var(--wc),.025);transition:border-color .2s ease,background .2s ease;}
.lp-proof:hover{border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.04);}
.lp-proof-k{display:inline-flex;align-items:center;gap:8px;flex:none;padding-right:18px;font-size:10px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:rgba(var(--wc),.55);white-space:nowrap;}
.lp-proof-k .dot{width:6px;height:6px;border-radius:50%;background:#22a06b;box-shadow:0 0 0 3px rgba(34,160,107,.18);}
.lp-proof-t{display:inline-flex;align-items:baseline;gap:7px;flex:1 1 auto;justify-content:center;padding:0 14px;border-left:1px solid rgba(var(--wc),.08);white-space:nowrap;}
.lp-proof-t b{font-family:'DM Mono',monospace;font-weight:500;font-size:19px;letter-spacing:-.4px;color:var(--text);line-height:1;}
.lp-proof-t.big b{color:var(--gold);}
.lp-proof-t span{font-size:12px;color:rgba(var(--wc),.5);}
.lp-proof-go{display:inline-flex;align-items:center;gap:6px;flex:none;margin-left:6px;padding:8px 12px;border-radius:10px;font-size:12.5px;font-weight:700;color:var(--gold);white-space:nowrap;}
.lp-proof-go i{font-style:normal;display:inline-block;transition:transform .2s ease;}
.lp-proof:hover .lp-proof-go{background:rgba(245,158,11,.1);}
.lp-proof:hover .lp-proof-go i{transform:translateX(3px);}
@media(max-width:1440px){ .lp-proof-k{display:none;} .lp-proof{padding-left:4px;} .lp-proof-k + .lp-proof-t{border-left:0;} .lp-proof-t{padding:0 10px;} .lp-proof-t b{font-size:17px;} .lp-proof-t span{font-size:11.5px;} .lp-proof-go{padding:8px 10px;margin-left:0;} }
@media(max-width:1240px){ .lp-proof-go{font-size:0;padding:8px;} .lp-proof-go i{font-size:16px;} .lp-proof-t{padding:0 8px;} .lp-proof-t b{font-size:16px;} .lp-proof-t span{font-size:11px;} }
.lp-week{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.lp-week li{display:flex;gap:12px;align-items:flex-start;padding:16px 16px 17px;border-radius:14px;border:1px solid rgba(var(--wc),.08);background:rgba(var(--wc),.025);}
.lp-week-ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--gold);background:rgba(245,158,11,.09);border:1px solid rgba(245,158,11,.22);}
.lp-week-ic .svgi{width:17px;height:17px;}
.lp-week b{display:block;font-size:14px;font-weight:700;color:var(--text);margin-bottom:4px;line-height:1.3;}
.lp-week li > span:last-child{font-size:12.5px;line-height:1.5;color:rgba(var(--wc),.58);text-wrap:pretty;}
@media(max-width:1080px){ .lp-week{display:none;} }
@media(min-width:1081px) and (max-width:1300px){ .lp-week li{flex-direction:column;gap:10px;} }
/* the third badge: experience, in gold */
.lp-hero-badge-right:not(:last-child){border-radius:0;}
.lp-hero-badge-yrs{color:#f0c476;background:rgba(245,158,11,.07);border-color:rgba(245,158,11,.3);border-left:1.5px solid rgba(245,158,11,.3);}
@media(min-width:1081px){
  /* owner, 4 Oct 2026: clean and level. Both columns share one height: the side column spreads its blocks so the
     last row lands level with the card's bottom edge, and both tops start on the same line. */
  .lp-hero-wrap{align-items:stretch;}
  .lp-hero-side{justify-content:space-between;}
  .login-wins-row{max-width:none;justify-content:flex-start;}   /* the chips use the width of the box, no empty margins either side */
  #login .lp-rec{display:none;}                                  /* the record has its own panel beside the card */
}
@media(max-width:1080px){
  .lp-hero-side{width:100%;max-width:560px;flex:none;}
  .lp-proof{display:none;}                                       /* the phone keeps the record strip inside the card */
}
/* phones: the side column takes the card's exact width so both edges line up (owner, 4 Oct 2026) */
@media(max-width:920px){
  .lp-hero-side{width:calc(100% - 34px);max-width:400px;}
}
/* tablets and narrow windows (owner, 13 Oct 2026: "use the screen size better"): the card and the film grow together to 600px, edges still level */
@media(min-width:601px) and (max-width:920px){
  .lp-glass-card{max-width:600px;}
  .lp-hero-side{max-width:600px;}
}
/* PHONE BADGES (2 Oct 2026, owner: "too messy"): each segment stays on one line, set smaller so all three fit; under 390px the third drops */
@media(max-width:600px){ #login .lp-hero-badge{flex-wrap:nowrap;max-width:100%;} #login .lp-hero-badge-inner,#login .lp-hero-badge-right{white-space:nowrap;font-size:8.5px;letter-spacing:.9px;padding:5px 7px;gap:4px;} }
@media(max-width:429px){ #login .lp-hero-badge{flex-wrap:wrap;row-gap:4px;} #login .lp-hero-badge-yrs{border-left:1.5px solid rgba(245,158,11,.3);border-radius:3px;} }
.lp-demo-stage{position:relative;aspect-ratio:16/9;background:#05080f;overflow:hidden;}  /* radius comes from .lp-hero-demo on the same element; border-radius:inherit here took the WRAPPER radius (0) and squared the video off */
.lp-demo-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.lp-demo-video,.lp-clip-v,#up-vid{pointer-events:none;-webkit-touch-callout:none;}
/* the hero film's end card (8 Oct 2026): the live setup count sits in the slot the film leaves under "This week's board is up."
   (55.6% down, centred). Sized to the frame (cqw) so it scales with the video. A count only, never a ticker. */
.lp-demo-stage{container-type:inline-size;}
.lp-demo-count{position:absolute;left:50%;top:55.6%;transform:translate(-50%,-50%) translateY(.6em);display:inline-flex;align-items:center;gap:.55em;
  padding:.46em .95em;border-radius:999px;background:rgba(14,17,26,.82);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
  font-size:13px;font-size:clamp(9px,1.36cqw,26px);font-weight:600;color:#e9edf4;white-space:nowrap;opacity:0;filter:blur(6px);pointer-events:none;
  transition:opacity .35s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1),filter .35s ease;}
.lp-demo-count i{width:.4em;height:.4em;border-radius:50%;background:#F0A500;box-shadow:0 0 .5em rgba(240,165,0,.8);flex:none;}
.lp-demo-count b{color:#FFD166;font-variant-numeric:tabular-nums;font-weight:800;}
.lp-demo-count.on{opacity:1;filter:none;transform:translate(-50%,-50%);}
/* phones (600px and under) get the film's own 4:5 cut, never a crop of the wide one; its count slot sits at 58.5% */
.lp-demo-stage.lp-demo-phone{aspect-ratio:4/5;}
.lp-demo-phone .lp-demo-count{top:58.5%;font-size:12px;font-size:clamp(9px,2.96cqw,32px);}
/* and it runs edge to edge (owner, 8 Oct 2026): full phone width, no inset card, pulled out of the wrap's side padding; the film keeps its own 6% safe margin, so nothing touches the screen edge. */
@media(max-width:600px){
  .lp-hero-side .lp-hero-demo.lp-demo-phone{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);   /* centred column, so 50% - 50vw lands on the screen edge whatever the padding above it */
    border-radius:0;border-left:0;border-right:0;box-shadow:0 0 0 1px rgba(245,158,11,.14),0 24px 60px -24px rgba(0,0,0,.85);}
}
.lp-demo-tag{position:absolute;top:12px;left:12px;z-index:2;display:inline-flex;align-items:center;gap:7px;background:rgba(3,6,14,.6);border:1px solid rgba(var(--wc),.14);border-radius:999px;padding:5px 12px;font-size:10px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--text);}
@supports(backdrop-filter:blur(1px)){.lp-demo-tag{backdrop-filter:blur(6px);}}
.lp-demo-tag .dot{width:6px;height:6px;border-radius:50%;background:#22a06b;box-shadow:0 0 0 3px rgba(34,160,107,.2);}
.lp-demo-playbtn{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:2;display:inline-flex;align-items:center;gap:9px;white-space:nowrap;background:rgba(3,6,14,.64);border:1px solid rgba(var(--wc),.2);color:var(--text);font-size:13px;font-weight:800;padding:10px 18px;border-radius:999px;cursor:pointer;transition:.16s;-webkit-tap-highlight-color:transparent;}
@supports(backdrop-filter:blur(1px)){.lp-demo-playbtn{backdrop-filter:blur(8px);}}
.lp-demo-playbtn:hover{background:var(--gold);color:#060a12;border-color:var(--gold);transform:translateX(-50%) translateY(-1px);}
.lp-demo-playbtn .tri{font-size:10px;}
.lp-vmodal{position:fixed;inset:0;z-index:400;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(3,6,14,.88);}
@supports(backdrop-filter:blur(1px)){.lp-vmodal{backdrop-filter:blur(10px);}}
.lp-vmodal.open{display:flex;}
.lp-vmodal-box{position:relative;width:100%;max-width:1000px;}
.lp-vmodal-video{width:100%;aspect-ratio:16/9;display:block;border-radius:14px;border:1px solid rgba(var(--wc),.14);background:#000;box-shadow:0 40px 100px rgba(0,0,0,.7);}
.lp-vmodal-close{position:absolute;top:-14px;right:-14px;width:40px;height:40px;border-radius:50%;background:#0b1220;border:1px solid rgba(var(--wc),.24);color:var(--text);font-size:19px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 8px 24px rgba(0,0,0,.5);}
.lp-vmodal-close:hover{background:var(--gold);color:#060a12;}
@media(max-width:700px){
  .lp-demo-playbtn{font-size:12px;padding:9px 15px;bottom:12px;}
  .lp-vmodal{padding:14px;}
  .lp-vmodal-close{top:-10px;right:-6px;width:34px;height:34px;font-size:17px;}
}

/* ── COMPARISON ── */
.lp-compare-section{padding:80px 24px;background:#08101f;position:relative;}
.lp-compare-section::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--wc),.06),transparent);}
.lp-compare-inner{max-width:760px;margin:0 auto;}
.lp-compare-head{text-align:center;margin-bottom:44px;}
.lp-compare-split{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.lp-compare-col-wrap{border-radius:16px;overflow:hidden;border:1px solid rgba(var(--wc),.07);}
.lp-compare-col-wrap.rbt-col{border-color:rgba(245,158,11,.2);}
.lp-compare-col-head{padding:14px 20px;font-size:9.5px;font-weight:800;letter-spacing:2px;text-transform:uppercase;}
.lp-compare-col-head.noise{background:rgba(201,59,59,.05);color:rgba(201,59,59,.65);border-bottom:1px solid rgba(201,59,59,.08);}
.lp-compare-col-head.plan{background:rgba(245,158,11,.08);color:var(--gold);border-bottom:1px solid rgba(245,158,11,.14);}
.lp-compare-item{padding:13px 20px;border-bottom:1px solid rgba(var(--wc),.04);font-size:13px;line-height:1.45;display:flex;align-items:flex-start;gap:9px;}
.lp-compare-item:last-child{border-bottom:none;}
.lp-compare-item.noise-item{color:rgba(var(--wc),.58);}
.lp-compare-item.plan-item{color:rgba(var(--wc),.82);}
.lp-ci-icon{flex-shrink:0;font-size:13px;margin-top:1px;line-height:1;}

/* ── RESPONSIVE (new sections) ── */
@media(max-width:700px){
  .lp-how-steps{grid-template-columns:1fr;gap:28px;}
  .lp-how-steps::before{display:none;}
  .lp-how-step{padding:0;text-align:left;display:grid;grid-template-columns:54px 1fr;gap:14px;align-items:start;}
  .lp-how-num-wrap{margin:0;flex-shrink:0;}
  .lp-compare-split{grid-template-columns:1fr;}
  .lp-antiai{padding:52px 20px;}
  .lp-how-section,.lp-compare-section{padding:52px 20px;}
}

/* ── 52-week range bar (fundamentals panel) ── */
.fund-range-wrap{padding:12px 0 0;margin-top:4px;}
.fund-range-label{font-size:9.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:rgba(var(--wc),.35);margin-bottom:8px;}
.fund-range-row{display:flex;align-items:center;gap:10px;}
.fund-range-lo,.fund-range-hi{font-size:10px;font-family:'DM Mono',monospace;color:rgba(var(--wc),.45);white-space:nowrap;}
.fund-range-track{flex:1;height:4px;background:rgba(var(--wc),.07);border-radius:4px;position:relative;}
.fund-range-fill{position:absolute;top:50%;transform:translate(-50%,-50%);width:9px;height:9px;border-radius:50%;background:var(--gold);border:2px solid rgba(11,18,34,1);box-shadow:0 0 6px rgba(245,158,11,.6);}

/* ── Floating Substack CTA (bottom-right, landing page only) ── */
.lp-float-cta{position:fixed;bottom:26px;right:22px;z-index:998;animation:float-in .5s .8s cubic-bezier(.34,1.56,.64,1) both;}
@keyframes float-in{from{opacity:0;transform:translateY(18px) scale(.92);}to{opacity:1;transform:none;}}
.lp-float-link{display:flex;align-items:center;gap:7px;background:linear-gradient(145deg,var(--gold),#c4810c);color:#050810;font-weight:800;font-size:13px;letter-spacing:-.1px;padding:12px 20px;border-radius:50px;text-decoration:none;box-shadow:0 8px 28px rgba(245,158,11,.38),0 2px 8px rgba(0,0,0,.55);transition:transform .15s,box-shadow .15s;white-space:nowrap;font-family:'Inter',system-ui,sans-serif;}
.lp-float-link:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 12px 36px rgba(245,158,11,.5),0 3px 12px rgba(0,0,0,.6);}
.lp-float-ico{font-size:15px;line-height:1;}
.lp-float-link{transition:transform .15s,box-shadow .15s,opacity .25s;}
.lp-float-cta.lp-float-hide .lp-float-link{opacity:0;transform:translateY(14px);pointer-events:none;}   /* steps aside over the example-trade tabs and the final call (12 Sep 2026) */
@media(max-width:480px){.lp-float-cta{bottom:18px;right:14px;}.lp-float-link{font-size:12px;padding:10px 16px;}
.lp-join-btn{width:100%;padding:10px 12px;font-size:14px;border-radius:11px;gap:1px;}
.lp-join-price{display:block;font-size:9.5px;line-height:1.35;white-space:normal;max-width:100%;margin-top:1px;}
.lp-join-note{font-size:10.5px;}
}

/* ── Social-proof toast (landing page only) ──
   THE JOIN NOTE (20 Oct 2026, owner: "the popups can be improved", then for GDPR: "just show users initials then and
   country flag and the product they signed up for"). A slim solid card in the RB look: a hairline border, a gold dot for
   Premium and a muted one for Free, the flag (our /api/asset-logo?k=flag), the initials and the plan. Desktop: small, bottom-left.
   Phone: a pill docked above the bottom 72px and the browser's own toolbar (the script lifts it by the visual viewport
   and the safe area). In: 220ms ease-out slide and fade; out: 140ms. Reduced motion: a fade only. */
.sp-toast{position:fixed;left:20px;bottom:20px;z-index:997;display:flex;align-items:center;gap:10px;box-sizing:border-box;max-width:300px;min-height:44px;
  padding:6px 4px 6px 14px;border:1px solid rgba(var(--wc),.09);border-radius:999px;background:rgba(14,18,30,.97);
  box-shadow:0 12px 32px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.05);color:rgba(var(--wc),.78);
  font:500 12.5px/1.2 Inter,system-ui,sans-serif;letter-spacing:0;white-space:nowrap;
  opacity:0;transform:translateY(12px);pointer-events:none;visibility:hidden;
  transition:opacity .14s ease-in,transform .14s ease-in,visibility 0s linear .14s;}
.sp-toast.sp-in{opacity:1;transform:none;pointer-events:auto;visibility:visible;transition:opacity .22s ease-out,transform .22s ease-out,visibility 0s;}
.sp-dot{flex:none;width:7px;height:7px;border-radius:50%;background:rgba(var(--wc),.34);}
.sp-dot.premium{background:var(--gold);box-shadow:0 0 0 3px rgba(245,158,11,.14),0 0 10px rgba(245,158,11,.45);}
.sp-toast [hidden]{display:none!important;}   /* a flag that 404s is hidden: its own display rule must not beat [hidden] */
.sp-flag{flex:none;display:block;width:20px;height:15px;border-radius:3px;object-fit:cover;box-shadow:0 0 0 1px rgba(255,255,255,.12);}
.sp-txt{display:inline-flex;align-items:center;gap:9px;min-width:0;}
.sp-line{overflow:hidden;text-overflow:ellipsis;}
.sp-txt b{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;}
.sp-tier{font-weight:600;color:rgba(var(--wc),.78);}
.sp-tier.premium{color:var(--gold);}
.sp-x{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin:-2px 0 -2px 2px;padding:0;border:0;border-radius:50%;
  background:none;color:rgba(var(--wc),.5);cursor:pointer;transition:background .15s ease-out,color .15s ease-out;}
.sp-x::after{content:"";position:absolute;width:44px;height:44px;}   /* the tap area is 44px, the circle stays small */
.sp-x:hover{background:rgba(255,255,255,.06);color:var(--text);}
.sp-x:active{transform:scale(.94);}
.sp-x svg{width:14px;height:14px;}
@media(max-width:767px){.sp-toast{left:10px;bottom:84px;max-width:calc(100% - 20px);}}
@media(prefers-reduced-motion:reduce){.sp-toast,.sp-toast.sp-in{transform:none;transition:none;}}

/* ══ LIGHT THEME (in-app toggle) ═══════════════════════════════════════════════
   Dark is the default. `html.theme-light` flips the white-channel var (--wc) to
   dark ink so every CSS tint/border/text built on rgba(var(--wc),…) inverts, plus
   the direct surface/text vars. JS-drawn colours (hero canvas, signal reel) are
   untouched. The marketing landing (#login) is force-reset to dark in both themes
   — the Substack audience never sees a light UI. */
html.theme-light{
  --wc:24,28,38;
  --bg:#e8ebf1; --surface:#f5f6f9; --surface2:#eceff4;   /* softened 11 Sep 2026: pure white panels on a pale ground glared */
  --text:#131722; --text2:#3f4a5c; --text3:#6b7688;
  --glass-border:rgba(24,28,38,0.12);
}
html.theme-light body{ background:var(--bg); }
html.theme-light body::before{
  background:
    radial-gradient(ellipse 70% 40% at 50% -5%, rgba(245,158,11,0.10) 0%, transparent 60%),
    radial-gradient(ellipse 60% 50% at 90% 10%, rgba(53,104,212,0.05) 0%, transparent 55%);
}
html.theme-light #login{
  --wc:255,255,255;
  --bg:#07070f; --surface:#16161f; --surface2:#21212e;
  --text:#ffffff; --text2:#c4ccd9; --text3:#96a1b8;
  --glass-border:rgba(255,255,255,0.10);
  background:#07070f;
}
/* GOLD TEXT ON A LIGHT PANEL (owner, 5 Oct 2026: "the yellow ... especially the text its hard to read"). Bright gold
   (#f59e0b) on the pale surfaces is about 2:1, unreadable for small text. In light mode the gold ink deepens to amber
   #9a5c00 (about 5:1 on --surface), so every label, link and icon drawn with var(--gold) reads. Anything that uses gold
   as a FILL (buttons, active tabs, badges) keeps the bright gold, and the landing (#login, always dark) keeps its own. */
html.theme-light{ --gold:#9a5c00; --gold2:#8a5200; --gold-deep:#7a4800; }
/* LIGHT-MODE INK (5 Oct 2026, contrast sweep of every tab): the semantic colours were tuned for a dark canvas and read
   at 1.4 to 2.8:1 on the pale surfaces. In light mode each deepens to about 4.5:1 or better; fills and tints keep their
   own rgba values, so badges and bars still look the same family. */
html.theme-light{ --text3:#56607a; --green:#167a4c; --red:#b0302f; --lime:#5f6e14; --blue:#2a56b8; --orange:#b23a1e; --purple:#6b3fa6; }
html.theme-light #login{ --text3:#96a1b8; --green:#22a06b; --red:#c93b3b; --lime:#a9bf52; --blue:#3568d4; --orange:#e35336; --purple:#9966cc; }
html.theme-light .sw-r{color:#167a4c}
html.theme-light .sw-st.ready{color:#2a56b8;border-color:rgba(42,86,184,.4);background:rgba(42,86,184,.08)}
html.theme-light .sw-st.win{color:#167a4c} html.theme-light .sw-st.loss{color:#b0302f}
html.theme-light .b-pending,html.theme-light .gs-dlead{color:#2a56b8} html.theme-light .b-gap{color:#b23a1e}
/* Gold FILLS stay bright gold in light mode: gradients built on var(--gold) turned muddy brown once the ink deepened */
html.theme-light .btn-gold,html.theme-light .glance-jump,html.theme-light .glance-jump:hover,html.theme-light .promo-btn,html.theme-light .season-go,html.theme-light .pitch-cta{background:linear-gradient(135deg,#FFC94D,#F0A500)!important;color:#1a1200!important;}
html.theme-light .ga-bar.gold,html.theme-light .scan-bar-fill,html.theme-light .tw-prog i{background:linear-gradient(90deg,#F0A500,#FFC94D)!important;}
/* Markets (js/markets.js hard-codes its up/down inks for the dark canvas) */
html.theme-light #page-markets .mk-num.up,html.theme-light #page-markets .up{color:#167a4c}
html.theme-light #page-markets .mk-num.dn,html.theme-light #page-markets .dn{color:#b0302f}
html.theme-light .mk-pin{background:#fff;border-color:rgba(24,28,38,.12);box-shadow:0 2px 10px rgba(20,24,40,.06)}
html.theme-light #page-markets .mk-evk{filter:brightness(.6) saturate(1.35)}
html.theme-light .mkt-score.hi{color:#167a4c}
html.theme-light .gd-best i{color:var(--text3)} html.theme-light .gs-wk span{color:var(--text3)}
html.theme-light #login{ --gold:#f59e0b; --gold2:#fcd34d; --gold-deep:#d4880a; }
html.theme-light .tab.on,html.theme-light .howto-num,html.theme-light .al-chip.on,html.theme-light .ac-test:hover,html.theme-light .fw-count,html.theme-light .mkt-sig-btn.on,html.theme-light .mkt-clear:hover,html.theme-light .gdot,html.theme-light .sw-nk i,html.theme-light .sw-chip em,html.theme-light .sw-ld.live,html.theme-light .tg-sw.on i,html.theme-light .gd-prog-bar i,html.theme-light .gd-next .gd-open,html.theme-light .ts-alert-save,html.theme-light .fund-range-fill,html.theme-light .mk-ecx em{ background:#F0A500!important; }
/* App surfaces that hardcode a dark navy bg become light surfaces in light mode.
   Landing classes (lp-, reel, demo) are intentionally NOT in this list. */
html.theme-light .glass,
html.theme-light .topbar,
html.theme-light .tabs,
html.theme-light .mkt, html.theme-light .mkt-expand,
html.theme-light .propfirm, html.theme-light .risk,
html.theme-light .cstrength, html.theme-light .tv-strength,
html.theme-light .heatmap, html.theme-light .ema-legend,
html.theme-light .pb-scale, html.theme-light .scan-status,
html.theme-light .al-toast, html.theme-light .sp-toast{ background:var(--surface); }
html.theme-light .search-input, html.theme-light .season-input,
html.theme-light .login-input, html.theme-light .mkt-search,
html.theme-light .mkt-search input,
html.theme-light .ts-input{ background:var(--surface2); }
/* Deep-inset panels + table headers + the promo code chip: near-black in dark
   mode, a soft gray step below the white cards in light mode. */
html.theme-light .fund-panel,
html.theme-light thead,
html.theme-light .promo-code{ background:var(--surface2); }
.pb-hist{font-size:11.5px;color:var(--text2);line-height:1.55;background:rgba(var(--wc),.03);border:1px solid rgba(var(--wc),.07);border-radius:10px;padding:9px 11px;margin-top:8px;}
.pb-hist b{color:var(--text);}
.mkt-split-warn{grid-column:1/-1;display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.55;color:var(--text2);background:rgba(227,83,54,.09);border:1px solid rgba(227,83,54,.32);border-radius:10px;padding:10px 13px;margin-bottom:4px;}
.mkt-split-warn .svgi{color:var(--orange);flex-shrink:0;margin-top:1px;}
.mkt-split-warn b{color:var(--text);}
.mkt-split-chip{display:inline-block;margin-left:7px;font-size:9.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--orange);background:rgba(227,83,54,.13);border:1px solid rgba(227,83,54,.3);border-radius:5px;padding:2px 6px;vertical-align:middle;}
.pb-earn-warn,.se-earn-warn{font-size:11.5px;color:var(--text2);line-height:1.55;background:rgba(227,83,54,.08);border:1px solid rgba(227,83,54,.28);border-radius:10px;padding:9px 11px;margin-top:8px;}
.pb-earn-warn b,.se-earn-warn b{color:var(--orange);}
.pb-earn-note,.se-earn-note{font-size:11.5px;color:var(--text3);line-height:1.5;margin-top:8px;}
.se-alert{margin-top:8px;}
.al-chip.pf-earn.on{background:rgba(227,83,54,.14);border-color:rgba(227,83,54,.45);color:var(--orange);}
.pb-earn-note b,.se-earn-note b{color:var(--text);}
.mkt-exp-left{display:flex;flex-direction:column;min-width:0;}
.theme-tog{background:none;border:1px solid var(--border);color:var(--text2);border-radius:9px;width:38px;height:34px;font-size:15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.15s;font-family:inherit;-webkit-tap-highlight-color:transparent;flex-shrink:0;}
.theme-tog:hover{color:var(--text);border-color:var(--border2);background:var(--gold-dim);}

/* ============================================================================
   POLISH PASS, motion, section reveal, glass niceties. All ADDITIVE: the
   natural (post-animation) state is fully visible, so nothing depends on JS or
   animation running. Motion is gated behind prefers-reduced-motion.
   ============================================================================ */
/* Global feel, safe in any motion setting */

*::-webkit-scrollbar{width:10px;height:10px;}
*::-webkit-scrollbar-thumb{background:rgba(var(--wc),.14);border-radius:10px;border:2px solid transparent;background-clip:padding-box;}
*::-webkit-scrollbar-thumb:hover{background:rgba(var(--wc),.24);background-clip:padding-box;}
*::-webkit-scrollbar-track{background:transparent;}
a:focus-visible,button:focus-visible,input:focus-visible,.tab:focus-visible,[onclick]:focus-visible{outline:2px solid var(--gold-border);outline-offset:2px;border-radius:8px;}
.btn-gold:active,.btn-ghost:active,.fund-btn:active,.lp-nav-cta:active,.lp-hero-cta:active,.lp-price-cta:active,.tab:active{transform:scale(.97);}
@media (hover:hover) and (pointer:fine){
  .mcard{transition:transform .16s cubic-bezier(.16,1,.3,1),box-shadow .16s,background .12s;}
  .mcard:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.32);}
}

@media (prefers-reduced-motion: no-preference){
  /* Staggered entrance for cards + rows when a section becomes active */
  @keyframes rbRise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  @keyframes rbFadeIn{from{opacity:0}to{opacity:1}}
  .page.on .mcard{animation:rbRise .5s cubic-bezier(.16,1,.3,1) both;}
  .page.on .mcard:nth-child(1){animation-delay:.03s}.page.on .mcard:nth-child(2){animation-delay:.07s}
  .page.on .mcard:nth-child(3){animation-delay:.11s}.page.on .mcard:nth-child(4){animation-delay:.15s}
  .page.on .mcard:nth-child(5){animation-delay:.19s}.page.on .mcard:nth-child(6){animation-delay:.23s}
  .page.on .mcard:nth-child(7){animation-delay:.27s}.page.on .mcard:nth-child(n+8){animation-delay:.3s}
  .page.on tbody tr{animation:rbFadeIn .45s ease both;}
  .page.on tbody tr:nth-child(1){animation-delay:.02s}.page.on tbody tr:nth-child(2){animation-delay:.05s}
  .page.on tbody tr:nth-child(3){animation-delay:.08s}.page.on tbody tr:nth-child(4){animation-delay:.11s}
  .page.on tbody tr:nth-child(5){animation-delay:.14s}.page.on tbody tr:nth-child(6){animation-delay:.17s}
  .page.on tbody tr:nth-child(n+7){animation-delay:.2s}
  /* Soft fade-in for panels that appear on demand */
  @keyframes rbSoftIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  .tw,.fund-panel,.season-panel{animation:rbSoftIn .34s ease both;}
  /* Landing scroll-reveal, JS adds .rb-rv (hide) then .rb-in (show) */
  .rb-rv{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
  .rb-rv.rb-in{opacity:1;transform:none;}
}

/* ── Pro icon system: inline SVG sprite (#i-*), stroke = currentColor ─────── */
.svgi{width:1.12em;height:1.12em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:-0.18em;flex-shrink:0;}
.svgi.f{fill:currentColor;stroke:none;}
.svgi.dg{color:var(--green);}.svgi.dy{color:var(--gold);}.svgi.dr{color:var(--red);}.svgi.dw{color:var(--text3);}
.fund-gloss-btn i{font-style:normal;}
.splash-mark,.mark{font-weight:900;letter-spacing:-1px;color:var(--gold);}

/* ── whole-system value stack ── */
.lp-stack-section{padding:64px 24px;background:#08101f;}
.lp-stack-inner{max-width:1000px;margin:0 auto;text-align:center;}
.lp-stack-h{font-size:clamp(26px,4vw,44px);font-weight:800;color:var(--text);letter-spacing:-1px;line-height:1.1;margin-bottom:12px;text-wrap:balance;}
.lp-stack-sub{font-size:15px;color:rgba(var(--wc),.6);line-height:1.6;max-width:560px;margin:0 auto 36px;}
.lp-stack-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;text-align:left;}
@media(max-width:700px){.lp-stack-cols{grid-template-columns:1fr;}}
.lp-stack-col{background:rgba(var(--wc),.03);border:1px solid rgba(var(--wc),.08);border-radius:18px;padding:26px 24px;}
.lp-stack-col-alt{border-color:rgba(245,158,11,.28);background:linear-gradient(180deg,rgba(245,158,11,.05),rgba(var(--wc),.02));}
.lp-stack-tag{display:inline-flex;align-items:center;gap:6px;font-size:9.5px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:var(--gold);margin-bottom:10px;}
.lp-stack-col h3{font-size:22px;font-weight:800;color:var(--text);letter-spacing:-.4px;margin-bottom:12px;}
.lp-stack-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
.lp-stack-list li{font-size:13px;color:rgba(var(--wc),.74);line-height:1.5;display:flex;gap:9px;}
.lp-stack-list li::before{content:'✓';color:var(--gold);font-weight:800;flex-shrink:0;}
.lp-stack-p{font-size:13px;color:rgba(var(--wc),.74);line-height:1.6;margin-bottom:12px;}
.lp-stack-titles{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-direction:column;gap:7px;}
.lp-stack-titles li{font-size:12.5px;color:var(--text);font-style:italic;line-height:1.45;padding-left:11px;border-left:2px solid rgba(245,158,11,.4);}
.lp-stack-sample{font-size:12.5px;font-weight:700;color:var(--gold);text-decoration:none;}
.lp-stack-sample:hover{text-decoration:underline;}
.lp-stack-extras{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px;text-align:left;}
@media(max-width:700px){.lp-stack-extras{grid-template-columns:1fr;}}
.lp-stack-pill{display:flex;gap:11px;align-items:flex-start;background:rgba(var(--wc),.03);border:1px solid rgba(var(--wc),.07);border-radius:14px;padding:14px 15px;}
.lp-stack-pill .svgi{color:var(--gold);width:1.3em;height:1.3em;margin-top:2px;}
.lp-stack-pill b{display:block;font-size:13px;color:var(--text);letter-spacing:-.1px;margin-bottom:3px;}
.lp-stack-pill span{font-size:11px;color:rgba(var(--wc),.55);line-height:1.5;}
.lp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px;padding-top:24px;border-top:1px solid rgba(var(--wc),.08);}
@media(max-width:640px){.lp-stats{grid-template-columns:repeat(2,1fr);gap:22px 14px;}}
.lp-stat{text-align:center;}
.lp-stat-num{display:block;font-family:'DM Mono',monospace;font-size:clamp(30px,4.2vw,46px);font-weight:700;color:var(--gold);letter-spacing:-1px;line-height:1;font-variant-numeric:tabular-nums;}
.lp-stat span{display:block;font-size:11.5px;color:rgba(var(--wc),.55);margin-top:8px;letter-spacing:.2px;}

/* ── look inside the app + real results ── */
/* ── Product clips ────────────────────────────────────────────────────────
   Short silent loops of the real app, one per section, each proving the claim
   beside it. Nothing loads until it scrolls close, and a clip that leaves the
   viewport pauses, so a page full of video still scrolls like a page of text. */
.lp-clip{margin:26px auto 0;max-width:880px;position:relative;}
#clip-guides{width:calc(100% - 48px);}   /* the guides section is full bleed for its shelf, the clip keeps the page gutter */
.lp-clip-frame{position:relative;border-radius:20px;overflow:hidden;border:1px solid rgba(245,158,11,.30);
  box-shadow:0 26px 70px -22px rgba(0,0,0,.85),0 0 70px rgba(245,158,11,.10);background:#080d18;}
.lp-clip-frame::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:16px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);border-radius:20px;}
.lp-clip-v{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#080d18;}
.lp-clip-tag{position:absolute;top:10px;left:10px;z-index:2;display:inline-flex;align-items:center;gap:6px;
  font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(245,158,11,.92);
  background:rgba(8,12,22,.82);border:1px solid rgba(245,158,11,.3);border-radius:20px;padding:4px 10px;backdrop-filter:blur(8px);}
.lp-clip-tag i{width:5px;height:5px;border-radius:50%;background:#22a06b;box-shadow:0 0 7px #22a06b;}
.lp-clip-cap{margin-top:9px;text-align:center;font-size:12.5px;color:rgba(var(--wc),.6);line-height:1.55;}
@media(max-width:700px){ .lp-clip{margin-top:20px;} .lp-clip-cap{font-size:11.5px;} #clip-guides{width:calc(100% - 30px);} }
@media(prefers-reduced-motion:reduce){ .lp-clip-v{content-visibility:auto;} }
.lp-inside{padding:60px 0 56px;background:#070d17;overflow:hidden;}
.lp-results{padding:56px 24px 64px;}
.lp-inside-head{max-width:640px;margin:0 auto 30px;text-align:center;padding:0 24px;}
.lp-inside-h{font-size:clamp(24px,3.6vw,40px);font-weight:800;color:var(--text);letter-spacing:-.8px;line-height:1.1;margin-bottom:11px;text-wrap:balance;}
.lp-inside-sub{font-size:14px;color:rgba(var(--wc),.58);line-height:1.6;}
.lp-showcase{max-width:1000px;margin:0 auto;padding:0 24px;}
.lp-sc-stage{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--glass-border);box-shadow:0 26px 64px rgba(0,0,0,.52);background:#0a1120;aspect-ratio:16/10;outline:none;}
.lp-sc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center;opacity:0;transform:scale(1.015);transition:opacity .55s ease,transform .7s ease;}
.lp-sc-img.active{opacity:1;transform:scale(1);}
.lp-sc-prog{position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--gold);z-index:3;box-shadow:0 0 12px rgba(245,158,11,.6);}
.lp-sc-prog.run{animation:lpProg var(--sc-dur,4800ms) linear forwards;}
@keyframes lpProg{from{width:0}to{width:100%}}
.lp-sc-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:42px;height:42px;border-radius:50%;background:rgba(7,13,23,.68);border:1px solid var(--glass-border);color:var(--text);cursor:pointer;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .15s,color .15s,border-color .15s;}
.lp-sc-arrow:hover{background:var(--gold);color:#0a0a0a;border-color:var(--gold);}
.lp-sc-arrow.prev{left:16px;} .lp-sc-arrow.next{right:16px;}
.lp-sc-caption{text-align:center;margin:18px auto 15px;max-width:640px;font-size:13px;color:var(--text2);line-height:1.55;min-height:52px;}
.lp-sc-caption b{color:var(--gold);display:block;font-size:14.5px;letter-spacing:-.2px;margin-bottom:4px;}
.lp-sc-thumbs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.lp-sc-thumb{width:88px;height:56px;padding:0;border-radius:9px;overflow:hidden;border:1px solid var(--glass-border);opacity:.48;cursor:pointer;background:none;transition:opacity .15s,border-color .15s,box-shadow .15s;}
.lp-sc-thumb img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;}
.lp-sc-thumb:hover{opacity:.82;}
.lp-sc-thumb.active{opacity:1;border-color:var(--gold);box-shadow:0 0 0 1px var(--gold);}
/* ── engagement: cursor tilt + button shine ── */
.rb-tilt:hover{will-change:transform;}
.lp-join-btn,.lp-price-cta{position:relative;overflow:hidden;}
.lp-join-btn::after,.lp-price-cta::after{content:'';position:absolute;top:0;left:-130%;width:55%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);transform:skewX(-18deg);transition:left .6s ease;pointer-events:none;}
.lp-join-btn:hover::after,.lp-price-cta:hover::after{left:140%;}
/* value-stack pills get the same spotlight + tilt as the feature cards */
.lp-stack-pill{position:relative;overflow:hidden;transition:transform .18s cubic-bezier(.16,1,.3,1),border-color .22s,box-shadow .25s;}
.lp-stack-pill>*{position:relative;z-index:1;}
.lp-stack-pill::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(200px circle at var(--mx,50%) var(--my,50%),rgba(245,158,11,.11),transparent 60%);}
.lp-stack-pill:hover::after{opacity:1;}
.lp-stack-pill:hover{border-color:var(--gold-border);box-shadow:0 12px 30px rgba(0,0,0,.35);}
/* text motion: hero line-stagger + per-word heading fade-up */
.rb-hl{display:inline-block;animation:rbHeroIn .75s cubic-bezier(.16,1,.3,1) backwards;}
@keyframes rbHeroIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none;}}
.rb-words .rb-word{display:inline-block;opacity:0;transform:translateY(24px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);}
.rb-words.rb-show .rb-word{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.lp-feat:hover .lp-feat-icon{transform:none;}.lp-join-btn::after,.lp-price-cta::after{display:none;}.rb-hl,.rb-words .rb-word{opacity:1!important;transform:none!important;animation:none!important;}}
.lp-results-grid{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;align-items:flex-start;max-width:1040px;margin:0 auto;}
.lp-res-wide{flex:1 1 440px;max-width:560px;margin:0;}
.lp-res-tall{flex:0 1 190px;max-width:230px;margin:0;}
.lp-results-grid a{display:block;border-radius:12px;transition:transform .2s ease;}
.lp-results-grid a:hover{transform:translateY(-2px);}
.lp-results-grid figcaption{font-size:11.5px;line-height:1.45;color:var(--text3);text-align:center;margin-top:8px;text-wrap:balance;}
.lp-res-wide img,.lp-res-tall img{width:100%;height:auto;display:block;border-radius:12px;border:1px solid var(--glass-border);box-shadow:0 10px 30px rgba(0,0,0,.38);}
.lp-results-grid a:hover img{border-color:rgba(245,158,11,.45);}
.lp-results-disc{font-size:11px;color:var(--text3);max-width:660px;margin:22px auto 0;text-align:center;line-height:1.6;}
@media(max-width:560px){.lp-sc-arrow{width:36px;height:36px;font-size:19px;}.lp-sc-thumb{width:62px;height:40px;}.lp-res-tall{flex:1 1 140px;}}
@media(prefers-reduced-motion:reduce){.lp-sc-img{transition:none;}.lp-sc-prog.run{animation:none;}}

/* WHAT YOU GET NOW (13 Oct 2026) */
.lp-new{max-width:1120px;margin:0 auto;padding:72px 22px 24px;text-align:center}
.lp-new-h{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:clamp(28px,4.4vw,46px);letter-spacing:-.03em;line-height:1.08;margin:10px 0 30px}
.lp-new-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;text-align:left}
.lp-new-card{display:flex;flex-direction:column;gap:8px;padding:20px 18px;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.09);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);color:inherit;text-decoration:none;transition:transform .2s ease-out,border-color .2s ease-out}
.lp-new-card:hover{transform:translateY(-3px);border-color:rgba(245,158,11,.4)}
.lp-new-card:active{transform:scale(.97)}
.lp-new-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:rgba(245,158,11,.12);color:#F0A500}
.lp-new-ic svg{width:21px;height:21px}
.lp-new-card b{font-size:16px;font-weight:800;color:#f5f6f8;letter-spacing:-.01em}
.lp-new-card span{font-size:13.5px;line-height:1.5;color:#b9c1cf}
.lp-new-card i{margin-top:auto;font-style:normal;font-size:12.5px;font-weight:700;color:#F0A500}
@media(max-width:1000px){.lp-new-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-new-card:last-child{grid-column:1/-1}}
@media(max-width:560px){.lp-new{padding:48px 16px 12px}.lp-new-grid{grid-template-columns:1fr}}

/* HERO PROOF (13 Oct 2026): real payouts one tap from the headline */
.lp-hero-proof{display:inline-flex;align-items:center;gap:12px;margin:2px 0 14px;padding:8px 14px 8px 8px;border-radius:14px;border:1px solid rgba(245,158,11,.32);background:linear-gradient(135deg,rgba(245,158,11,.10),rgba(245,158,11,.02));text-decoration:none;color:inherit;transition:transform .2s ease-out,border-color .2s ease-out}
.lp-hero-proof:hover{transform:translateY(-2px);border-color:rgba(245,158,11,.6)}.lp-hero-proof:active{transform:scale(.97)}
.lp-hp-thumbs{display:flex}.lp-hp-thumbs img{width:38px;height:38px;border-radius:9px;object-fit:cover;object-position:top;border:2px solid #0b0d14;margin-left:-10px;box-shadow:0 4px 12px rgba(0,0,0,.4)}.lp-hp-thumbs img:first-child{margin-left:0}
.lp-hp-txt{display:flex;flex-direction:column;text-align:left;line-height:1.3}.lp-hp-txt b{font-size:13px;color:var(--text)}.lp-hp-txt span{font-size:12px;color:var(--text3)}.lp-hp-txt span b{font-size:12px;color:#F0A500;font-family:'DM Mono',monospace}
@media(max-width:520px){.lp-hero-proof{display:flex;margin:2px auto 12px;max-width:100%}.lp-hp-txt b{font-size:12px}}

/* HOW IT WORKS, BUILT (13 Oct 2026, owner: the old clip "looks too random"). One real closed trade, KSS, walked through the
   three steps on a 12s loop: the plan fills in, the order is placed, the trade triggers and hits its target. Each visual sits
   under its own step, the active step lights up in turn. Reduced motion shows the finished state. */
.lp-how-inner{max-width:1120px}
.lp-how-header{margin-bottom:22px}
.lp-how-real{text-align:center;font-size:13.5px;color:rgba(var(--wc),.62);margin:0 auto 34px;max-width:620px}
@media(min-width:761px){.lp-how-step{display:flex;flex-direction:column}}
.hv{margin:22px auto 0;width:100%;max-width:300px;min-height:208px;text-align:left;border-radius:16px;padding:14px 16px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.09);box-shadow:0 20px 50px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.06);animation:hvGlow 12s infinite}
.hv2{animation-delay:4s}.hv3{animation-delay:8s}
@keyframes hvGlow{0%,30%{border-color:rgba(245,158,11,.55);box-shadow:0 20px 50px rgba(0,0,0,.35),0 0 0 4px rgba(245,158,11,.08),inset 0 1px 0 rgba(255,255,255,.06)}36%,100%{border-color:rgba(255,255,255,.09);box-shadow:0 20px 50px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.06)}}
.hv-top{display:flex;align-items:center;gap:8px;margin-bottom:10px}.hv-top b{font-size:15px;color:var(--text)}.hv-top span{font-size:11.5px;color:rgba(var(--wc),.55)}.hv-top em{margin-left:auto;font-style:normal;font-size:11px;color:var(--gold);font-family:'DM Mono',monospace}
.hv-row{display:flex;justify-content:space-between;padding:7px 10px;border-radius:9px;background:rgba(255,255,255,.035);margin-bottom:6px;font-size:12.5px;color:rgba(var(--wc),.6);opacity:0;transform:translateY(6px)}
.hv-row b{font-family:'DM Mono',monospace;font-size:13px;color:var(--text)}.hv-row b.e{color:var(--gold)}.hv-row b.s{color:#e07f77}.hv-row b.t{color:#6fd3a2}
.hv1 .r1{animation:hvIn 12s infinite 0s}.hv1 .r2{animation:hvIn 12s infinite .5s}.hv1 .r3{animation:hvIn 12s infinite 1s}
.hv2 .r1{animation:hvIn 12s infinite 4s}.hv2 .r2{animation:hvIn 12s infinite 4.5s}.hv2 .r3{animation:hvIn 12s infinite 5s}
@keyframes hvIn{0%{opacity:0;transform:translateY(6px)}5%,92%{opacity:1;transform:none}100%{opacity:0}}
.hv-btn{margin-top:4px;text-align:center;padding:9px;border-radius:10px;background:linear-gradient(145deg,#F0A500,#d97706);color:#14100a;font-weight:800;font-size:12.5px;animation:hvPress 12s infinite 4s}
@keyframes hvPress{0%,14%{transform:none;opacity:1}16%{transform:scale(.94)}18%{transform:none}20%,100%{opacity:.35}}
.hv-done{display:flex;align-items:center;gap:7px;margin-top:8px;font-size:12px;color:#6fd3a2;opacity:0;animation:hvIn 12s infinite 6.2s}.hv-done svg{width:15px;height:15px}
.hv-state{position:relative;margin-left:auto;height:22px;width:76px}.hv-state i{position:absolute;right:0;top:0;font-style:normal;font-size:11px;font-weight:800;letter-spacing:.04em;padding:4px 8px;border-radius:7px}
.hv-state .w{background:rgba(255,255,255,.07);color:rgba(var(--wc),.6);animation:hvOut 12s infinite 8s}.hv-state .in{background:rgba(63,179,127,.18);color:#6fd3a2;opacity:0;animation:hvIn 12s infinite 8.6s}
@keyframes hvOut{0%,5%{opacity:1}8%,94%{opacity:0}100%{opacity:1}}
.hv-push{display:flex;gap:10px;align-items:center;padding:10px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);margin-bottom:8px;opacity:0;animation:hvDrop 12s infinite 8.9s}
.hv-push svg{flex:none;width:30px;height:30px;padding:6px;border-radius:9px;background:rgba(245,158,11,.14);color:var(--gold)}.hv-push b{display:block;font-size:12.5px;color:var(--text)}.hv-push span{font-size:11.5px;color:rgba(var(--wc),.6)}
@keyframes hvDrop{0%{opacity:0;transform:translateY(-10px)}5%,92%{opacity:1;transform:none}100%{opacity:0}}
.hv-win{display:flex;align-items:baseline;gap:8px;padding:10px;border-radius:12px;background:linear-gradient(135deg,rgba(245,158,11,.16),rgba(245,158,11,.04));border:1px solid rgba(245,158,11,.35);opacity:0;animation:hvIn 12s infinite 10.2s}
.hv-win span{font-size:12px;color:rgba(var(--wc),.7)}.hv-win b{font-family:'DM Mono',monospace;font-size:20px;color:var(--gold)}.hv-win em{margin-left:auto;font-style:normal;font-size:11px;color:rgba(var(--wc),.55)}
@media(max-width:760px){.lp-how-step .hv{grid-column:1/-1;max-width:none;margin-top:6px}}
@media(prefers-reduced-motion:reduce){.hv,.hv *{animation:none!important;opacity:1!important;transform:none!important}.hv-state .w{display:none}}

/* TRUST PILL (13 Oct 2026, owner: "sleeker, better layout"): one glass pill, three facts, one line on every phone */
.lp-trust{display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:7px 14px;margin:0 0 14px;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 6px 20px rgba(0,0,0,.25);white-space:nowrap}
.lp-trust-i{display:inline-flex;align-items:center;gap:7px;font:700 10.5px/1 Inter,sans-serif;letter-spacing:.11em;text-transform:uppercase;color:#d2d8e3}
.lp-trust-g{color:#F0A500}
.lp-trust-dot{width:6px;height:6px;border-radius:50%;background:#3fb37f;box-shadow:0 0 0 3px rgba(63,179,127,.18);animation:lpTrustPulse 2.4s ease-in-out infinite}
.lp-trust-sep{width:3px;height:3px;border-radius:50%;background:rgba(240,165,0,.6);flex:none}
@keyframes lpTrustPulse{0%,100%{box-shadow:0 0 0 3px rgba(63,179,127,.18)}50%{box-shadow:0 0 0 5px rgba(63,179,127,.06)}}
@media(max-width:420px){.lp-trust{gap:7px;padding:6px 11px}.lp-trust-i{font-size:9.2px;letter-spacing:.06em;gap:5px}}
@media(prefers-reduced-motion:reduce){.lp-trust-dot{animation:none}}

/* CREDENTIAL LINE (13 Oct 2026, second pass, owner: "still don't like" the pill). No box: an editorial kicker that names
   who paid out, a short gold rule in front. One line on wide screens, two short lines on a phone. */
.lp-cred{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:2px 0 16px;font:600 11px/1.3 Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:rgba(var(--wc),.62)}
.lp-cred-a{display:inline-flex;align-items:center;gap:10px;color:#F0A500}
.lp-cred-a::before{content:"";width:22px;height:1.5px;background:linear-gradient(90deg,rgba(240,165,0,.2),#F0A500);flex:none}
.lp-cred-b b{color:var(--text);font-weight:800}
@media(max-width:520px){.lp-cred{flex-direction:column;align-items:flex-start;gap:6px;font-size:9.5px;letter-spacing:.06em}.lp-cred-b{white-space:nowrap}}
@media(max-width:360px){.lp-cred{font-size:8.6px;letter-spacing:.03em}}

/* USE THE WIDTH (13 Oct 2026, owner): the credential block is a two-row grid that spans the card, and the proof chip runs
   edge to edge with its call to action on the right. Full payer names; the live broker named. */
.lp-cred{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px 16px;width:100%}
.lp-cred-c{justify-self:end;color:rgba(var(--wc),.62)}.lp-cred-c b{color:var(--text);font-weight:800}
.lp-cred-b{grid-column:1/-1}
.lp-hero-proof{display:flex;width:100%;box-sizing:border-box;padding:9px 10px 9px 9px}
.lp-hp-txt{flex:1;min-width:0}
.lp-hp-go{flex:none;display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.35);color:#F0A500;font:700 12.5px/1 Inter,sans-serif;white-space:nowrap}
.lp-hp-go svg{width:15px;height:15px}
@media(max-width:620px){.lp-cred{grid-template-columns:1fr}.lp-cred-c{justify-self:start}.lp-hp-go{padding:8px 10px;font-size:0;gap:0}.lp-hp-go svg{width:16px;height:16px}}
@media(max-width:520px){.lp-cred-b,.lp-cred-c{white-space:normal}}
/* REAL ASSET LOGOS (20 Oct 2026, js/asset-logo.js): the Journal's chip. The initials on a hairline dark tile; the logo from
   /api/asset-logo fades in over them on a white disc (stocks inset 12%, coins and pairs fill it); no logo, the initials stay.
   The size is set inline on the chip, so nothing moves when a logo arrives. */
.rb-ai{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%;overflow:hidden;background:rgba(var(--wc),.06);border:1px solid rgba(var(--wc),.1);color:var(--text2);font-weight:800;letter-spacing:-.02em;line-height:1;vertical-align:middle;font-style:normal;font-family:Inter,sans-serif;box-sizing:border-box}
.rb-ai i{font-style:normal}.rb-ai i::before{content:attr(data-i)}
.rb-ai img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;opacity:0;transition:opacity .2s ease-out}
.rb-ai.rb-ai-stock img{padding:12%;box-sizing:border-box}
.rb-ai.rb-ai-crypto img,.rb-ai.rb-ai-fx img{object-fit:cover}
.rb-ai img.on{opacity:1}
.rb-ai img.lt{background:#161a26}
.rb-ai-row{display:inline-flex;align-items:center;gap:8px;min-width:0;vertical-align:middle}
.sw-tk b{display:inline-flex;align-items:center;min-width:0}
.sw-tk b .rb-ai,.tw-sym>.rb-ai,.pbh-card-name .rb-ai,.cp-l .rb-ai,.mk-name b .rb-ai,.acx-row-t>.rb-ai,.gs-next .rb-ai,.sb-live-l .rb-ai{margin-right:7px}
.mkt-sym .rb-ai{margin-right:1px}
.tw-sym>.rb-ai{float:left;margin-top:1px}
.rb-ai-credit{font-size:11px;color:var(--text3)}
.rb-ai-credit a{color:inherit}
/*@@ section lp-lift @@*/
/* landing lift, 23 Sep 2026 (ui-ux-pro-max audit): small labels clear 4.5:1, phone body text reads at 15px and up,
   carousel controls and dots are thumb-sized, the footer links too. Scoped to the landing's lp- classes only. */
.lp-hero-badge-inner{font-size:10.5px;color:#f28e8e}
.lp-pain-num{color:rgba(245,158,11,.9)}
.lp-price-pretitle{color:rgba(245,158,11,.92);font-size:10.5px}
.lp-plan-name{color:rgba(var(--wc),.7);font-size:11px}
.lp-plan-price s{color:rgba(var(--wc),.55)}
.lp-plan-price span{color:rgba(var(--wc),.62)}
.lp-join-price{opacity:1;color:rgba(6,10,18,.82)}
.lp-reel-dot{position:relative}
.lp-reel-dot::before{content:'';position:absolute;inset:-18px -12px}
.lp-reel-arrow{width:44px;height:44px}
.lp-sc-arrow{width:44px;height:44px}
footer a,.lp-foot a{display:inline-block;padding:8px 6px;line-height:24px}
@media(max-width:680px){
  .lp-hero-p{font-size:15.5px}
  .lp-reel-sub,.lp-gates-sub,.lp-stack-sub{font-size:16px}
  .lp-stack-p,.lp-stack li,.lp-stack-list li{font-size:15px}
}
/* no orphans: a heading never ends on a lone word where the browser can help (pro.js does the same by hand on the layered pages) */
.lp-hero h1,.lp-sec-h,.lp-guides-h,.lp-reel-h,.lp-faq-q,.lp-final h2,.lp-join h2,.lp-inside h2,.lp-stack h2,.lp-gate h3,.lp-feat h3{text-wrap:pretty}
/*@@ section rbt-sidebar-css @@*/
/* SaaS sidebar (5 Oct 2026, owner: "lay it out like a sass like our journal with menu left side").
   Desktop/tablet >=1100px only. The old .tab row stays in the DOM as the single source of truth (hidden here);
   sidebar items click the matching .tab so locks, goToTab, rbtMarkTab and appTidy all run unchanged.
   Active state comes from body[data-tab], which rbtMarkTab already sets. Phones and 820-1099px are untouched. */
.rbt-sb{display:none}
@media(min-width:1100px){
  :root{--sbw:244px;--sb-acc:#F0A500;--sb-acc-rgb:240,165,0}
  html.sb-mini{--sbw:72px}
  html.theme-light{--sb-acc:#B87400;--sb-acc-rgb:184,116,0}
  #app .tabs{display:none!important}
  #app{max-width:1280px;margin-left:calc(var(--sbw) + max(0px,(100% - var(--sbw) - 1280px)/2));margin-right:0;transition:margin-left .22s ease-out}
  #app .topbar .tb-left,#app .topbar #themeTog,#app .topbar #rbtPwaBtn,#app .topbar #rbtShareBtn,#app .topbar #lock{display:none!important}
  #app .topbar .tb-mid{flex:1 1 auto;max-width:560px;min-width:220px}
  .rbt-sb{display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;width:var(--sbw);z-index:60;box-sizing:border-box;
    background:linear-gradient(180deg,rgba(14,16,27,.94),rgba(8,9,16,.97));border-right:1px solid rgba(var(--wc),.07);
    box-shadow:6px 0 32px rgba(0,0,0,.32);
    transition:width .22s ease-out;overflow:hidden}
  html.theme-light .rbt-sb{background:rgba(250,251,253,.86);border-right-color:rgba(10,14,22,.09);box-shadow:4px 0 24px rgba(16,22,40,.06)}
  .rbt-sb::before{content:'';position:absolute;top:-90px;left:-60px;width:260px;height:220px;pointer-events:none;
    background:radial-gradient(closest-side,rgba(var(--sb-acc-rgb),.16),transparent);z-index:0}
  .rbt-sb>*{position:relative;z-index:1}
  .sb-head{display:flex;align-items:center;gap:10px;padding:18px 14px 16px 16px;border-bottom:1px solid rgba(var(--wc),.07);min-height:68px;box-sizing:border-box}
  .sb-brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1;cursor:pointer;background:none;border:0;padding:0;color:inherit;font:inherit;text-align:left}
  .sb-brand img{width:36px;height:36px;border-radius:10px;flex:0 0 36px;object-fit:contain}
  .sb-bt{min-width:0;white-space:nowrap;overflow:hidden}
  .sb-bt b{display:block;font-size:15.5px;font-weight:800;letter-spacing:-.3px;color:var(--text)}
  .sb-bt b em{font-style:normal;color:var(--sb-acc)}
  .sb-bt small{display:block;font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text3);margin-top:2px}
  .sb-col{flex:0 0 28px;width:28px;height:28px;border-radius:8px;border:1px solid rgba(var(--wc),.09);background:rgba(var(--wc),.03);color:var(--text3);
    display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color .18s ease-out,border-color .18s ease-out}
  .sb-col:hover{color:var(--text);border-color:rgba(var(--wc),.18)}
  .sb-col svg{width:15px;height:15px;transition:transform .22s ease-out}
  html.sb-mini .sb-col svg{transform:rotate(180deg)}
  .sb-nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px 0 10px;scrollbar-width:none}
  .sb-nav::-webkit-scrollbar{display:none}
  /* PERKS WAS A SLIVER (16 Oct 2026, owner's desktop app at 1915px): the nav shrank under the RIGHT NOW card and the foot,
     and with its scrollbar hidden the last item, Perks, was cut to a thin line. sbFit() below: when the menu does not fit,
     the card steps aside (sb-nolive); if it still does not fit, the whole sidebar scrolls and no item is ever clipped (sb-scroll).
     THE CARD STAYS (owner, 17 Oct 2026: he liked RIGHT NOW and it had gone at 1900x993). sbFit() never hides it now; it makes
     room in steps: the menu tightens (sb-tight), then the card goes compact and keeps its release line and Coach (sb-snug),
     and only a window shorter than any desktop scrolls the whole sidebar (sb-scroll). */
  .rbt-sb.sb-tight .sb-nav{padding:4px 0 6px}
  .rbt-sb.sb-tight .sb-item{padding:6px 11px;margin:1px 10px}
  .rbt-sb.sb-tight .sb-sec{padding:9px 20px 3px}
  .rbt-sb.sb-snug .sb-live{margin:8px 10px 2px;padding:10px 11px 9px}
  .rbt-sb.sb-snug .sb-live-h{margin-bottom:7px}
  .rbt-sb.sb-snug #sbLiveNext,.rbt-sb.sb-snug #sbLiveBoard{display:none}
  .rbt-sb.sb-snug .sb-live-n{margin-bottom:6px}
  .rbt-sb.sb-snug .sb-live-n button{padding:6px 9px}
  .rbt-sb.sb-snug .sb-live-n b{font-size:17px}
  .rbt-sb.sb-snug .sb-live-rel{margin:2px 0 4px;padding:6px 9px}
  .rbt-sb.sb-snug .sb-live-c{margin-top:6px}
  .rbt-sb.sb-snug .sb-foot{padding:4px 0 8px}
  .rbt-sb.sb-mini .sb-sec{display:none}
  .rbt-sb.sb-mini .sb-nav{padding:2px 0 4px}
  .rbt-sb.sb-mini .sb-live-c{display:none}
  .rbt-sb.sb-scroll{overflow-y:auto;scrollbar-width:none}
  .rbt-sb.sb-scroll::-webkit-scrollbar{display:none}
  .rbt-sb.sb-scroll .sb-nav{flex:0 0 auto;overflow:visible}
  .rbt-sb.sb-scroll .sb-foot{flex-shrink:0}
  .sb-sec{display:flex;align-items:center;gap:8px;padding:16px 20px 6px;font-size:9.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--text3);white-space:nowrap}
  .sb-sec::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,rgba(var(--wc),.09),transparent)}
  .sb-item{display:flex;align-items:center;gap:11px;width:calc(100% - 20px);margin:2px 10px;padding:9px 11px;box-sizing:border-box;border-radius:10px;border:1px solid transparent;
    background:none;color:var(--text2);font:inherit;font-size:13.5px;font-weight:600;letter-spacing:-.1px;text-align:left;cursor:pointer;position:relative;white-space:nowrap;
    transition:color .18s ease-out,background .18s ease-out,border-color .18s ease-out,transform .15s ease-out}
  .sb-item:hover{color:var(--text);background:rgba(var(--wc),.05)}
  .sb-item:active{transform:scale(.97)}
  .sb-item:focus-visible{outline:2px solid rgba(var(--sb-acc-rgb),.55);outline-offset:1px}
  .sb-item .svgi{width:18px;height:18px;flex:0 0 18px;opacity:.82;transition:opacity .18s ease-out}
  .sb-l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .sb-lk{display:none;flex:0 0 18px;width:18px;height:18px;border-radius:50%;align-items:center;justify-content:center;background:linear-gradient(180deg,#FFD166,#F0A500);color:#1a1200;box-shadow:0 3px 9px rgba(240,165,0,.3)}
  .sb-item .sb-lk .svgi{width:10px;height:10px;flex:0 0 10px;opacity:1;stroke-width:3}
  body.free .sb-pro .sb-lk{display:inline-flex}
  body.free .sb-pro .sb-l{opacity:.78}
  body[data-tab="home"] .sb-item[data-go="home"],body[data-tab="ema"] .sb-item[data-go="ema"],body[data-tab="forex"] .sb-item[data-go="forex"],
  body[data-tab="calls"] .sb-item[data-go="calls"],body[data-tab="squeeze"] .sb-item[data-go="squeeze"],body[data-tab="portfolio"] .sb-item[data-go="portfolio"],
  body[data-tab="markets"] .sb-item[data-go="markets"],body[data-tab="examples"] .sb-item[data-go="examples"],body[data-tab="alerts"] .sb-item[data-go="alerts"],body[data-tab="charts"] .sb-item[data-go="charts"],body[data-tab="perks"] .sb-item[data-go="perks"]{
    color:var(--sb-acc);background:linear-gradient(90deg,rgba(var(--sb-acc-rgb),.14),rgba(var(--sb-acc-rgb),.03));border-color:rgba(var(--sb-acc-rgb),.16)}
  body[data-tab="home"] .sb-item[data-go="home"]::before,body[data-tab="ema"] .sb-item[data-go="ema"]::before,body[data-tab="forex"] .sb-item[data-go="forex"]::before,
  body[data-tab="calls"] .sb-item[data-go="calls"]::before,body[data-tab="squeeze"] .sb-item[data-go="squeeze"]::before,body[data-tab="portfolio"] .sb-item[data-go="portfolio"]::before,
  body[data-tab="markets"] .sb-item[data-go="markets"]::before,body[data-tab="examples"] .sb-item[data-go="examples"]::before,body[data-tab="alerts"] .sb-item[data-go="alerts"]::before,body[data-tab="charts"] .sb-item[data-go="charts"]::before,body[data-tab="perks"] .sb-item[data-go="perks"]::before{
    content:'';position:absolute;left:-10px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--sb-acc);box-shadow:0 0 12px rgba(var(--sb-acc-rgb),.55)}
  .sb-foot{border-top:1px solid rgba(var(--wc),.07);padding:8px 0 12px}
  .sb-acct{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px 10px 0}
  .sb-acct .sb-item{width:auto;margin:0;justify-content:center;gap:7px;padding:8px 6px;border-color:rgba(var(--wc),.08);background:rgba(var(--wc),.03);font-size:12px}
  .sb-acct .sb-item .sb-l{flex:0 1 auto}
  .sb-acct .sb-item .svgi{width:15px;height:15px;flex-basis:15px}
  /* icon rail */
  html.sb-mini .sb-head{padding:16px 0 14px;justify-content:center;flex-direction:column;gap:10px}
  html.sb-mini .sb-bt,html.sb-mini .sb-l{display:none}
  html.sb-mini .sb-brand{flex:0 0 auto}
  html.sb-mini .sb-sec{padding:12px 0 4px;justify-content:center;font-size:0;gap:0}
  html.sb-mini .sb-sec::after{flex:0 0 26px}
  html.sb-mini .sb-item{justify-content:center;padding:10px 0;gap:0}
  html.sb-mini .sb-lk{position:absolute;top:3px;right:6px;width:14px;height:14px}
  html.sb-mini .sb-acct{grid-template-columns:1fr;gap:4px}
}
@media(min-width:1100px) and (prefers-reduced-motion:reduce){ .rbt-sb,#app,.sb-item,.sb-col svg{transition:none!important} }
/* ===== GLASS TABS (owner, 5 Oct 2026: "make tabs glassy and sleek on both mobile and web making sure its clear whats
   clickable"). One layer over the three navs: the tab row (821-1099px), the phone bottom bar (<=820px) and the sidebar
   (>=1100px). Every tab reads as a raised glass key at rest (hairline border, a lit top edge, a tinted icon well), lifts
   and catches gold on hover, presses in on tap, and the open one is the only metallic gold key. Last in the head, so it
   wins every earlier tab rule. ===== */
.tabs{background:linear-gradient(180deg,rgba(22,26,40,.72),rgba(10,12,20,.78));border:1px solid rgba(255,255,255,.09);
  box-shadow:0 18px 48px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.07);backdrop-filter:blur(12px) saturate(1.5);-webkit-backdrop-filter:blur(12px) saturate(1.5)}
.tabs .tab.glass{backdrop-filter:none;-webkit-backdrop-filter:none}
/* a hidden tab draws nothing: every CSS animation pauses (class set from visibilitychange) and resumes on return */
html.rbt-bg *,html.rbt-bg *::before,html.rbt-bg *::after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-iteration-count:1!important;animation-duration:.01ms!important}}   /* the keys sit inside the already-blurred bar; a second blur per key was pure cost */
.tab{background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.11);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 2px 8px rgba(0,0,0,.22);
  transition:background .2s ease-out,border-color .2s ease-out,box-shadow .2s ease-out,transform .15s ease-out;-webkit-tap-highlight-color:transparent;user-select:none}
.tab .tab-ico{display:inline-grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:9px;color:rgba(var(--wc),.82);
  background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);transition:background .2s ease-out,color .2s ease-out}
.tab .tab-ico .svgi{width:17px;height:17px}
.tab-lbl{color:rgba(var(--wc),.86)}
.tab-sub{color:rgba(var(--wc),.5)}
.tab:hover{background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.035));border-color:rgba(245,158,11,.45);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 8px 22px rgba(0,0,0,.32),0 0 0 3px rgba(245,158,11,.06);transform:translateY(-1px)}
.tab:hover .tab-ico{color:#ffd166;background:rgba(245,158,11,.12)}
.tab:active{transform:scale(.97)}
.tab:focus-visible,.tab-x:focus-visible{outline:2px solid rgba(255,209,102,.8);outline-offset:2px}
.tab.on{background:linear-gradient(180deg,#ffd77a 0%,#f5ad1b 48%,#e09200 100%);border-color:rgba(255,224,150,.9);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -2px 0 rgba(120,70,0,.25),0 8px 26px rgba(240,165,0,.38),0 0 0 1px rgba(240,165,0,.35);transform:none}
.tab.on .tab-ico{color:#1a1200;background:rgba(255,255,255,.28);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.tab.on .tab-lbl{color:#140e00}
.tab.on .tab-sub{color:rgba(20,14,0,.6)}
@media(min-width:821px) and (max-width:1150px){ .tab .tab-ico{width:26px;height:26px;flex-basis:26px} }

/* phones: the floating glass dock. Each key keeps a visible icon well and a readable label; the open one lights gold. */
@media(max-width:820px){
  .tabs{background:linear-gradient(180deg,rgba(24,28,44,.70),rgba(10,12,22,.82))!important;border:1px solid rgba(255,255,255,.12)!important;
    box-shadow:0 -10px 40px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.12)!important}
  .tab,.tab:hover,.tab.on{background:transparent!important;border-color:transparent!important;box-shadow:none!important;transform:none}
  .tab:active,.tab-x:active{transform:scale(.94)}
  .tab .tab-ico,.tab-x .tab-ico{width:46px!important;height:30px!important;flex-basis:auto;border-radius:11px;color:rgba(var(--wc),.78);
    background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
  .tab.on .tab-ico,.tab-x.on .tab-ico{color:#1a1200!important;background:linear-gradient(180deg,#ffd77a,#f0a500)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 4px 14px rgba(240,165,0,.4)!important}
  .tab-lbl::after{color:rgba(var(--wc),.72)!important;font-size:10px!important}
  .tab-x-l{color:rgba(var(--wc),.72)!important;font-size:10px!important}
  .tab.on .tab-lbl::after,.tab-x.on .tab-x-l{color:#ffd166!important;font-weight:800}
  .tab-x{color:rgba(var(--wc),.78)}
  .setups-sw button{border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.035)}
  .setups-sw button:active{transform:scale(.96)}
  .setups-sw button.on{background:linear-gradient(180deg,rgba(255,215,122,.26),rgba(240,165,0,.14));color:#ffd166;border-color:rgba(240,165,0,.45)}
}

/* the sidebar: rest items get a faint glass key on hover, the open one a gold glass key with its rail */
@media(min-width:1100px){
  .sb-item{color:rgba(var(--wc),.78)}
  .sb-item .svgi{opacity:.9}
  .sb-item:hover{background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));border-color:rgba(255,255,255,.10);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
  .sb-item:hover .svgi{color:#ffd166;opacity:1}
  body[data-tab="home"] .sb-item[data-go="home"],body[data-tab="ema"] .sb-item[data-go="ema"],body[data-tab="forex"] .sb-item[data-go="forex"],
  body[data-tab="calls"] .sb-item[data-go="calls"],body[data-tab="squeeze"] .sb-item[data-go="squeeze"],body[data-tab="portfolio"] .sb-item[data-go="portfolio"],
  body[data-tab="markets"] .sb-item[data-go="markets"],body[data-tab="examples"] .sb-item[data-go="examples"],body[data-tab="alerts"] .sb-item[data-go="alerts"]{
    background:linear-gradient(180deg,rgba(255,215,122,.16),rgba(240,165,0,.06));border-color:rgba(240,165,0,.32);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 6px 18px rgba(240,165,0,.10)}
}

/* iPHONE (owner, 5 Oct 2026, screenshots: "bottom bar jumping up on scroll" and the Setups switch "hidden a bit by the iPhone
   front camera"). The bar gets its own compositing layer, the fix for WebKit dropping a blurred fixed bar out of place
   mid-scroll. A solid strip sits behind the status bar (the app runs edge to edge with black-translucent), so nothing
   scrolls under the clock and the notch, and every sticky bar parks below it. */
@media(max-width:820px){
  .tabs{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;will-change:transform}
  #app.app-in .tabs{animation:none!important}
  /* iPHONE, second pass (7 Oct 2026, owner: "the buttons jump up sometimes when im scrolling"). Safari's bottom toolbar
     collapses and expands mid-scroll, and env(safe-area-inset-bottom) flips between 0 and the home-indicator height with
     it. The bar is pinned at bottom:0 and its bottom padding is built on that inset, so the keys shifted up and down by
     that amount in one frame. The inset still applies (the keys must clear the home indicator); the change now glides.
     A finger tap also left :hover stuck on the tapped key (its 1px lift), so the lift is for real pointers only. */
  /* (the padding glide was replaced on 7 Oct 2026 by a fixed padding and no blur, see IPHONE, third pass, below) */
  .tab:hover{transform:none!important}
  .tab:active{transform:scale(.97)!important}
  body::before{content:'';position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:#07080f;z-index:330;pointer-events:none}
  html.theme-light body::before{background:#f6f7fb}
  .setups-sw{top:calc(8px + env(safe-area-inset-top,0px))!important}
}
/* iPHONE, third pass (owner, 7 Oct 2026: "the buttons jump up sometimes when im scrolling the app"). The glide was not
   enough: WebKit still draws a position:fixed bar that carries backdrop-filter out of place while the page scrolls under
   it (its known fixed + backdrop-filter displacement bug), and the bar's height still moved with the safe-area inset.
   So on phones the bar has no blur at all: a solid, opaque surface on its own layer (translate3d kept), and a bottom
   padding of max(10px, inset) with no transition, so nothing about its size changes mid-scroll. */
@media(max-width:820px){
  .tabs{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#0c0f19!important;
    padding:7px 8px max(10px, env(safe-area-inset-bottom,0px))!important;transition:none!important}
  /* the open key: a gold icon well with dark ink, and a label that reads on the bar in both themes (light mode painted the
     whole key gold, so its amber label vanished into it) */
  html.theme-light .tabs .tab.on,html.theme-light .tabs .tab.on:hover{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
  html.theme-light .tab.on .tab-ico,html.theme-light .tab-x.on .tab-ico{color:#1a1200!important;background:linear-gradient(180deg,#FFD166,#F0A500)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 3px 10px rgba(240,165,0,.35)!important}
  html.theme-light .tab.on .tab-lbl::after,html.theme-light .tab-x.on .tab-x-l{color:#7a4800!important;font-weight:800}
  html.theme-light .tab:not(.on) .tab-ico,html.theme-light .tab-x:not(.on) .tab-ico{color:#2c3446!important;background:rgba(10,14,22,.05)!important;box-shadow:inset 0 0 0 1px rgba(10,14,22,.09)!important}
  html.theme-light .tab-lbl::after,html.theme-light .tab-x-l{color:#2c3446!important}
  /* THE SETUPS SWITCH (owner, 7 Oct 2026: "swing forex vol squeeze banner hard to see and sometimes gets hidden by iphone
     front camera black section"). A solid surface with a hairline border, the open key filled gold with dark ink, and it
     parks below the notch strip (body::before, the safe-area height) with at least 8px to spare. */
  .setups-sw{top:max(8px, calc(env(safe-area-inset-top,0px) + 8px))!important;background:#141927!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;
    border:1px solid rgba(255,255,255,.12)!important;box-shadow:0 10px 26px rgba(0,0,0,.45)!important}
  .setups-sw button{min-height:40px;font-size:13.5px;color:#d4dae6;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04)}
  .setups-sw button.on{background:linear-gradient(180deg,#FFD166,#F0A500)!important;color:#1a1200!important;border-color:#E09A00!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.45)!important}
  html.theme-light .setups-sw{background:#fff!important;border-color:rgba(10,14,22,.14)!important;box-shadow:0 8px 22px rgba(16,22,40,.12)!important}
  html.theme-light .setups-sw button{color:#1b2232;background:#f2f4f8;border-color:rgba(10,14,22,.10)}
  html.theme-light .more-card{background:rgba(255,255,255,.98)!important;-webkit-backdrop-filter:none;backdrop-filter:none;border-color:rgba(10,14,22,.12);box-shadow:0 -18px 50px rgba(16,22,40,.18)}
  html.theme-light .more-grab{background:rgba(10,14,22,.18)}
  html.theme-light .more-grid button,html.theme-light .more-row button{background:#f4f6fa;border-color:rgba(10,14,22,.10);color:#2c3446}
  html.theme-light .more-grid b{color:#131722} html.theme-light .more-grid span{color:#56607a}
  html.theme-light .more-sheet{background:rgba(16,22,40,.35)}
}
/* WIDE DESKTOP (owner, 5 Oct 2026, screenshot at 1920: "on desktop we can use these spaces way better"). Past 1500px
   the app grows to 1640 and sits beside the sidebar instead of floating in the middle, the Live Trigger Watch goes three
   across, and the empty run of the sidebar under Learn carries a live card: what is live, what is waiting, the next
   trigger, the next board, and the Coach. */
.sb-live{display:none}
@media(min-width:1100px){
  .sb-live{display:block;margin:14px 10px 4px;padding:13px 13px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.09);
    background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
  .sb-live[hidden],html.sb-mini .sb-live{display:none}
  .sb-live-h{display:flex;align-items:center;gap:7px;font-size:9.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--text3);margin-bottom:10px}
  .sb-live-h i{width:7px;height:7px;border-radius:50%;background:#2fae7a;box-shadow:0 0 0 3px rgba(47,174,122,.18);animation:sbPulse 2s ease-in-out 4}
  @keyframes sbPulse{50%{box-shadow:0 0 0 6px rgba(47,174,122,0)}}
  .sb-live-n{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
  .sb-live-n button{appearance:none;font:inherit;text-align:left;padding:9px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:var(--text2);cursor:pointer;transition:border-color .18s ease-out,background .18s ease-out}
  .sb-live-n button:hover{border-color:rgba(240,165,0,.4);background:rgba(240,165,0,.06)}
  .sb-live-n b{display:block;font-family:'DM Mono',monospace;font-size:20px;font-weight:700;color:var(--text);line-height:1.1}
  .sb-live-n button:first-child b{color:#ffd166}
  .sb-live-n span{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
  .sb-live-l{font-size:12px;color:var(--text2);line-height:1.5;margin:0 0 4px}
  .sb-live-l b{color:var(--text)}
  .sb-live-rel{display:block;width:100%;text-align:left;appearance:none;font:inherit;font-size:12px;line-height:1.45;color:var(--text2);margin:2px 0 6px;padding:8px 10px;border-radius:10px;
    border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);cursor:pointer;transition:border-color .18s ease-out}
  .sb-live-rel:hover{border-color:rgba(240,165,0,.4)}
  .sb-live-rel b{display:block;color:var(--text);font-weight:700}
  .sb-live-rel em{font-style:normal;font-family:'DM Mono',monospace;color:#ffd166;font-weight:700}
  .sb-live-rel i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#e0605d;margin-right:6px;vertical-align:1px}
  .sb-live-c{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:10px;appearance:none;font:inherit;font-size:12.5px;font-weight:800;color:#1a1200;
    background:linear-gradient(180deg,#ffd77a,#f0a500);border:0;border-radius:10px;padding:9px 10px;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.5);transition:transform .15s ease-out}
  .sb-live-c:active{transform:scale(.97)}
  .sb-live-c .svgi{width:15px;height:15px}
}
@media(min-width:1500px){
  #app{max-width:1640px;margin-left:calc(var(--sbw) + 28px);margin-right:28px}
  .tw-grid{grid-template-columns:repeat(3,1fr)}
}
/* THE LOGO SHINE (owner, 7 Oct 2026: the same shimmer as the start.rbtrading.site logo, on the logo art whose rounded
   corners are part of the image, so nothing is cut). A band of light crosses the mark every 9 seconds, transform only
   so it never repaints the page, and a gold glow breathes three times then rests. Paused with the tab hidden. */
.rb-shine{position:relative;display:inline-flex;flex:0 0 auto;line-height:0;border-radius:22%;overflow:hidden;isolation:isolate;
  box-shadow:0 0 0 4px rgba(246,168,28,.07),0 10px 30px rgba(246,168,28,.28);animation:rbBreathe 7s ease-in-out 3}
.rb-shine img{box-shadow:none!important;border-radius:0!important;object-fit:contain!important}
.rb-shine::after{content:'';position:absolute;inset:0;pointer-events:none;will-change:transform;
  background:linear-gradient(105deg,transparent 36%,rgba(255,255,255,.42) 47%,transparent 58%);
  transform:translateX(-140%);animation:rbSweep 9s ease-in-out 2.4s infinite}
@keyframes rbSweep{0%{transform:translateX(-130%)} 34%,100%{transform:translateX(130%)}}
@keyframes rbBreathe{0%,100%{box-shadow:0 0 0 4px rgba(246,168,28,.07),0 10px 30px rgba(246,168,28,.28)} 50%{box-shadow:0 0 0 7px rgba(246,168,28,.05),0 14px 40px rgba(246,168,28,.42)}}
@media(prefers-reduced-motion:reduce){.rb-shine,.rb-shine::after{animation:none}}
html.rbt-bg .rb-shine::after{animation-play-state:paused}
/* OVERLAYS ARE SOLID (owner, 7 Oct 2026, iPhone screenshots: the search list and the Coach let the page show through).
   The speed pass took the blur off these sheets but left them 86 to 96% opaque, and on a dark phone the page text ghosted
   through. Every sheet and dialog card is now fully opaque, in both themes. */
.cp-card,.dc-card,.up-card,.more-card,.ts-modal>*,.rbm-card{background:#141926!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.sp-toast,.al-toast,.lp-vmodal>*{background:#141926!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html.theme-light .sp-toast,html.theme-light .al-toast,html.theme-light .lp-vmodal>*{background:#ffffff!important}
html.theme-light .cp-card,html.theme-light .dc-card,html.theme-light .up-card,html.theme-light .more-card,html.theme-light .ts-modal>*,html.theme-light .rbm-card{background:#ffffff!important}
/* light mode: the same keys on a light canvas */
html.theme-light .tabs{background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(246,248,252,.78))!important;border-color:rgba(10,14,22,.10)!important;box-shadow:0 12px 36px rgba(16,22,40,.10),inset 0 1px 0 #fff!important}
html.theme-light .tab:not(.on){background:linear-gradient(180deg,#fff,rgba(244,246,250,.9));border-color:rgba(10,14,22,.12);box-shadow:inset 0 1px 0 #fff,0 2px 6px rgba(16,22,40,.06)}
html.theme-light .tab:not(.on) .tab-ico{color:#3a4458;background:rgba(10,14,22,.05);box-shadow:inset 0 0 0 1px rgba(10,14,22,.07)}
html.theme-light .tab:not(.on) .tab-lbl{color:#1b2232}
html.theme-light .tab:not(.on):hover{border-color:rgba(200,130,0,.55)}
@media(max-width:820px){ html.theme-light .tab:not(.on),html.theme-light .tab:not(.on):hover{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
  html.theme-light .tab-lbl::after,html.theme-light .tab-x-l{color:#3a4458!important} html.theme-light .tab.on .tab-lbl::after,html.theme-light .tab-x.on .tab-x-l{color:#7a4800!important;font-weight:800} }
@media(prefers-reduced-motion:reduce){ .tab,.tab:hover,.tab:active,.tab-x:active{transition:none;transform:none} }
/* LIGHT MODE, FULL SWEEP (owner, 7 Oct 2026: "a lot the light white sections look wrong still ... buttons hard to read").
   Measured with a contrast pass over every tab, the Markets panels, the More sheet and the sheets at 375 and 1920: every
   text below WCAG AA (4.5:1, 3:1 for large text) on its real composited background is inked here. Gold text deepens one
   more step so it holds 4.5:1 even on gold-tinted chips; counts and captions lose the opacity that washed them out; the
   Markets flags drawn for the dark canvas get their light inks; active keys keep dark ink on a gold fill. */
html.theme-light{ --gold:#875000; --gold2:#7a4800; --green:#11663f; }
html.theme-light .sw-r,html.theme-light .sw-st.win,html.theme-light .wd-g{color:#11663f}
html.theme-light .fbtn-n,html.theme-light .mkt-pill .c,html.theme-light .gb-f b,html.theme-light .gs-wl{opacity:1;color:inherit}
html.theme-light .glance .gs-r > .gs-wk span,html.theme-light .gs-wk span,html.theme-light .gc-cap span{color:#56607a}
html.theme-light .promo-badge{color:#0d5a36;background:rgba(17,102,63,.10)}
html.theme-light .mk-tile i{color:rgba(24,28,38,.78)}
html.theme-light #page-markets .mk-flag.l{color:#11663f;background:rgba(17,102,63,.10);border-color:rgba(17,102,63,.35)}
html.theme-light #page-markets .mk-flag.s{color:#a52a28;background:rgba(176,48,47,.08);border-color:rgba(176,48,47,.32)}
html.theme-light #page-markets .mk-flag.i{color:#24509f;background:rgba(42,86,184,.08);border-color:rgba(42,86,184,.32)}
html.theme-light #page-markets .mk-flag.w{color:#7a4800;background:rgba(240,165,0,.12);border-color:rgba(176,112,0,.40)}
html.theme-light #page-markets .mk-flag.n{color:#3f4a5c}
html.theme-light .mk-q.l b,html.theme-light .mk-pct.l,html.theme-light .mk-lr em.up,html.theme-light .mk-erd em.up,html.theme-light .mk-qc em.up{color:#11663f}
html.theme-light .mk-q.s b,html.theme-light .mk-pct.s,html.theme-light .mk-lr em.dn,html.theme-light .mk-erd em.dn,html.theme-light .mk-qc em.dn,html.theme-light .mk-warn{color:#a52a28}
html.theme-light .mk-q.i b{color:#24509f} html.theme-light .mk-q.w b,html.theme-light .mk-bank-n b.w{color:#7a4800}
html.theme-light .mk-ev.past{opacity:1}html.theme-light .mk-ev.past .mk-evt{color:#56607a}html.theme-light #page-markets .mk-bc.b{color:#0f5c38}html.theme-light #page-markets .mk-bc.s{color:#a52a28}
html.theme-light .mk-tag{color:#7a4800;background:rgba(240,165,0,.14)}
html.theme-light #page-markets .mk-evk{filter:none;color:#3f4a5c!important;border-color:rgba(24,28,38,.3)!important}
html.theme-light .mk-g.on,html.theme-light .mk-f.on{color:#7a4800;border-color:rgba(176,112,0,.55);background:rgba(240,165,0,.12)}
html.theme-light .mk-s.on{color:#131722;background:rgba(24,28,38,.08)}
html.theme-light .mk-ego,html.theme-light .mk-own-cta{color:#1a1200}
html.theme-light .mk-cm tr th:first-child{background:var(--surface)}
html.theme-light .nx-cd{color:#7a4800;background:rgba(240,165,0,.16)}
@media(max-width:820px){ html.theme-light .tabs{background:#fff!important;border-color:rgba(10,14,22,.12)!important;box-shadow:0 -8px 28px rgba(16,22,40,.10)!important} }
html.theme-light{--sb-acc:#8a5200;--sb-acc-rgb:138,82,0} html.theme-light .sb-live-n button:first-child b{color:#875000}

/* ONE SPACING RHYTHM (13 Oct 2026, owner: "check gaps between sections"). Measured at 1300px the gaps ran 64 to 156px.
   Every landing section now pads 48px top and bottom (36px on phones), so each gap is the same ~96px (~72px). */
body :is(.lp-reel-section,.lp-gallery-section,.lp-antiai,.lp-content-section,.lp-gates-section,.lp-stack-section,.lp-new,.lp-guides,.lp-inside,.lp-results,.lp-how-section,.lp-change-section,.lp-compare-section,.lp-testi-section,.lp-price-wrap,.lp-faq-section){padding-top:48px;padding-bottom:48px}
body .lp-proofwall{padding:48px 22px}
body .lp-proofwall.pfw{margin-top:0;padding-top:0;border-top:0}
@media(max-width:600px){
  body :is(.lp-reel-section,.lp-gallery-section,.lp-antiai,.lp-content-section,.lp-gates-section,.lp-stack-section,.lp-new,.lp-guides,.lp-inside,.lp-results,.lp-how-section,.lp-change-section,.lp-compare-section,.lp-testi-section,.lp-price-wrap,.lp-faq-section){padding-top:36px;padding-bottom:36px}
  body .lp-proofwall{padding:36px 16px}
}

/* CREDENTIALS GRID (13 Oct 2026, third pass): three facts in an even grid that fills the card, hairline dividers, label over
   value; the proof chip ends in a round arrow so its text gets the room. */
.lp-cred{display:grid;grid-template-columns:1fr 1fr;gap:0;width:100%;margin:2px 0 16px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.025);overflow:hidden;font:inherit;letter-spacing:normal;text-transform:none}
.lp-cred-cell{display:flex;flex-direction:column;gap:4px;padding:10px 14px;border-right:1px solid rgba(255,255,255,.07)}
.lp-cred-cell:nth-child(2){border-right:0}
.lp-cred-wide{grid-column:1/-1;border-right:0;border-top:1px solid rgba(255,255,255,.07)}
.lp-cred-cell span{font:700 9.5px/1 Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#F0A500}
.lp-cred-cell b{font:700 13.5px/1.25 Inter,sans-serif;color:var(--text);letter-spacing:-.01em}
.lp-hp-go{width:34px;height:34px;padding:0;justify-content:center;border-radius:50%;font-size:0;gap:0}
.lp-hp-go svg{width:16px;height:16px}
@media(max-width:620px){.lp-cred-cell{padding:9px 12px}.lp-cred-cell b{font-size:12.5px}}

/* AUTHORITY BLOCK (13 Oct 2026, owner: "push more authority on being an investor and trader not just pushing the funded
   model ... make the part way slicker and pro"). The 18 years leads in the display face, investor and trader is the
   title, the live broker sits in the line under it, and the prop firms drop to a quiet footnote row. */
.lp-auth{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:16px;margin:2px 0 18px;padding:14px 16px 0;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:linear-gradient(135deg,rgba(240,165,0,.07),rgba(255,255,255,.02) 46%);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.lp-auth-yr{display:flex;align-items:center;gap:8px;padding-right:16px;border-right:1px solid rgba(255,255,255,.08)}
.lp-auth-yr b{font-family:var(--serif);font-weight:400;font-size:46px;line-height:.9;letter-spacing:-.02em;background:linear-gradient(180deg,#FFD166,#F0A500);-webkit-background-clip:text;background-clip:text;color:transparent}
.lp-auth-yr span{font:700 9.5px/1.25 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:rgba(var(--wc),.6)}
.lp-auth-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.lp-auth-main b{font:700 15.5px/1.2 Inter,sans-serif;letter-spacing:-.015em;color:var(--text)}
.lp-auth-main span{font-size:12.5px;line-height:1.45;color:rgba(var(--wc),.68);text-wrap:pretty}
.lp-auth-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:12px -16px 0;padding:9px 16px;border-top:1px solid rgba(255,255,255,.06);background:rgba(0,0,0,.14);border-radius:0 0 15px 15px}
.lp-auth-foot span{font:700 9px/1.3 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:rgba(var(--wc),.45);margin-right:2px}
.lp-auth-foot i{font:600 11.5px/1.3 Inter,sans-serif;font-style:normal;color:rgba(var(--wc),.78)}
.lp-auth-foot i+i::before{content:"";display:inline-block;width:3px;height:3px;border-radius:50%;background:rgba(240,165,0,.6);vertical-align:middle;margin:0 12px 2px 0}
@media(max-width:620px){.lp-auth{column-gap:12px;padding:12px 13px 0}.lp-auth-yr{padding-right:12px;gap:6px}.lp-auth-yr b{font-size:38px}.lp-auth-yr span{font-size:8.5px}.lp-auth-main b{font-size:14px}.lp-auth-main span{font-size:11.5px}.lp-auth-foot{margin:10px -13px 0;padding:8px 13px;gap:3px 10px}.lp-auth-foot span{flex-basis:100%}.lp-auth-foot i+i::before{margin-right:10px}}

/* THE FREE SIGN-UP ON THE FIRST PHONE SCREEN (14 Oct 2026, owner: "tighten this up so the free sign up box is in view on
   mobile as well first page"). Phones get the one-line paragraph, the credentials block without its long line, a slimmer
   payouts chip, and the member-wins chips moved under the form, so "Get this week's setups" and the free email box sit
   inside the first screen. Desktop is unchanged. */
.lp-hp-short{display:none}
@media(max-width:620px){
  .lp-hp-long{display:none}.lp-hp-short{display:inline}
  .lp-hero-p{margin-bottom:12px}
  .lp-auth{margin-bottom:12px}.lp-auth-main span{display:none}.lp-auth-yr b{font-size:34px}.lp-auth-foot{margin-top:8px}
  .lp-hero-h1{margin-bottom:8px}
  .lp-hero-proof{padding:7px 8px;margin-bottom:12px}.lp-hero-proof .lp-hp-thumbs img{width:32px;height:32px}.lp-hp-txt>span{display:none}
  .lp-auth-box{display:flex;flex-direction:column}
  .lp-auth-box>.lp-wins-label,.lp-auth-box>.login-wins-row{order:3}
  .lp-auth-box>.lp-wins-label{margin-top:14px}
  .lp-auth-box{padding-top:14px}
  .lp-sub-go{padding-left:14px;padding-right:14px}
  .lp-sub-in{min-width:0;flex:1 1 auto}
}
/*@@ section rbt-held-css @@*/html.rb-held #login,html.rb-held #lp-nav{display:none!important}html.rb-held #splash{display:flex}
