:root{color-scheme:dark;--bg:#101214;--panel:#181c20;--line:#30363d;--muted:#a7b0ba;--text:#f1f4f7;--accent:#b4f272;--red:#ff9292;--blue:#79b6ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.skip-link{position:fixed;top:12px;left:12px;z-index:10;transform:translateY(-180%);background:var(--accent);color:#12220a;padding:12px 18px;border-radius:5px;font-size:14px;font-weight:600}.skip-link:focus{transform:translateY(0);color:#12220a}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,select{font:inherit}button,a,select,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.topbar,main,footer{max-width:1280px;margin:auto;padding-left:32px;padding-right:32px}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:23px;font-weight:750;letter-spacing:-1px;display:flex;gap:12px;align-items:center}.brandmark{color:var(--accent);width:32px;height:32px;display:block;flex-shrink:0}.brand{line-height:1}.brand span{display:block}nav{display:flex;gap:30px;font-size:14px;color:var(--muted)}.hero{padding:42px 0 30px}.eyebrow{color:var(--accent);font:11px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:2px;margin:0 0 14px}h1{font-size:clamp(38px,4.6vw,60px);line-height:1.06;letter-spacing:-2.5px;margin:14px 0 18px;font-weight:650}h1 span{color:var(--accent)}.lede{font-size:17px;color:var(--muted);line-height:1.8}.hero-meta{display:flex;flex-wrap:wrap;gap:14px 28px;margin-top:28px;font:12px ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted)}.hero-meta span:before{content:"●";color:var(--accent);margin-right:8px;font-size:8px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}h2{font-size:29px;letter-spacing:-1px;margin:0 0 20px;font-weight:600}h3{font-size:17px;font-weight:600;margin:0 0 12px}.pill{border:1px solid var(--line);border-radius:99px;padding:7px 12px;color:var(--muted);font:11px ui-monospace,SFMono-Regular,Consolas,monospace}label{display:flex;flex-direction:column;gap:7px;font-size:11px;letter-spacing:.4px;color:var(--muted);min-width:145px;flex:1}select{background:#101418;color:var(--text);border:1px solid var(--line);border-radius:5px;padding:9px;max-width:100%;font-size:12px}.caption{font-size:12px;color:var(--muted);line-height:1.8}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{font-weight:500;color:var(--muted);white-space:nowrap;text-align:left;padding:14px 12px;border-bottom:1px solid var(--line)}td{padding:14px 12px;border-bottom:1px solid #242a30;white-space:nowrap}th button{color:inherit;background:none;border:0;cursor:pointer;padding:0;text-align:inherit}tbody tr:hover{background:#1e252b}tbody tr.selected{background:#25311e}.run-button{display:inline-block;background:none;color:var(--text);border:0;padding:0;font:inherit;font-weight:600;text-align:left;cursor:pointer;text-decoration:none}.run-button:hover{color:var(--accent)}.num{text-align:right;font-variant-numeric:tabular-nums}.positive{color:var(--accent)}.negative{color:var(--red)}#status{padding:38px 20px;text-align:center;color:var(--muted);font-size:14px;border:1px dashed var(--line);border-radius:8px;margin:20px 0}#status:empty{display:none}#run-details{margin-top:48px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.metric{background:var(--panel);padding:22px;border:1px solid var(--line);border-radius:9px}.metric p{margin:0;color:var(--muted);font-size:11px}.metric strong{display:block;font-size:29px;font-weight:500;margin-top:12px;font-variant-numeric:tabular-nums}.chart-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:9px;margin:0 0 18px;padding:22px;min-width:0}.chart{position:relative}.chart svg{display:block;width:100%;height:auto;overflow:visible}.legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.legend button{border:1px solid var(--line);border-radius:5px;padding:5px 9px;background:transparent;color:var(--text);font-size:10px;cursor:pointer}.legend button[aria-pressed=false]{opacity:.4}.tooltip{min-height:38px;font:11px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);margin-top:8px;overflow-wrap:anywhere}.decision{border-bottom:1px solid var(--line);padding:12px 0}.decision summary{cursor:pointer;color:var(--text);font-size:12px}.decision p{font-size:13px;color:var(--muted);line-height:1.7}.decision pre,pre{font:11px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:420px;overflow:auto;color:var(--muted)}details summary{font-size:12px;cursor:pointer}.downloads{display:flex;gap:15px;flex-wrap:wrap;font-size:11px;margin-top:16px;color:var(--accent)}.contribute{margin-top:60px;border-top:1px solid var(--line);padding:45px 0}.contribute p{max-width:600px;font-size:14px;color:var(--muted);line-height:1.8}.contribute ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:step;margin:28px 0}.contribute li{counter-increment:step;display:flex;flex-direction:column;gap:12px;min-width:0;padding-top:12px}.contribute li:before{content:"0" counter(step);color:var(--accent);font:12px ui-monospace,SFMono-Regular,Consolas,monospace}.contribute strong{font-size:14px}code{font:11px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;color:var(--muted)}.contribute li span{font-size:12px;color:var(--muted);line-height:1.8}.button{display:inline-block;background:var(--accent);color:#12220a;border-radius:5px;font-weight:600;font-size:12px;padding:13px 18px}.button:hover{background:#c5ff87;color:#12220a}footer{border-top:1px solid var(--line);padding-top:24px;padding-bottom:28px;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}
@media(max-width:760px){.topbar,main,footer{padding-left:18px;padding-right:18px}.topbar{height:auto;flex-wrap:wrap;gap:6px;padding-top:12px;padding-bottom:12px}.brand{font-size:19px}nav{width:100%;justify-content:space-between;gap:6px;flex-wrap:wrap;font-size:12px}nav a{white-space:nowrap}.hero{padding-top:32px}h1{letter-spacing:-2px}.lede{font-size:14px}.metric-grid{grid-template-columns:repeat(2,1fr)}.chart-grid{grid-template-columns:1fr}.panel{padding:16px}.contribute ol{grid-template-columns:1fr;gap:12px}.hero-meta{font-size:10px}.wide{min-width:100%!important}footer{gap:14px;flex-wrap:wrap}.metric{padding:17px}.metric strong{font-size:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.section-heading>div{min-width:0}.section-heading .pill{flex-shrink:0}#run-title,#run-meta{overflow-wrap:anywhere}

/* A fabricated run must never be mistakable for a real one. */
/* `[hidden]` must win over any display rule below: a class that sets
   `display:block` otherwise overrides the browser's own [hidden] rule and the
   warning renders even when it is not applicable, labelling real results fake. */
[hidden]{display:none!important}
.pill.warn{border-color:#7a5a1e;background:#241c0c;color:#f0c265;line-height:1.7;display:block;margin:0 0 14px}
.pill.warn:before{content:"⚠ ";font-size:12px}
td .synthetic-chip{display:inline-block;margin-left:8px;border:1px solid #7a5a1e;background:#241c0c;color:#f0c265;border-radius:99px;padding:2px 7px;font:10px ui-monospace,SFMono-Regular,Consolas,monospace;vertical-align:1px}
tr.synthetic td{background:#1a1610}

#cost-overview{margin-top:24px}.bar-row{display:grid;grid-template-columns:minmax(100px,140px) minmax(30px,1fr) auto;align-items:center;gap:12px;margin:18px 0;font-size:11px}.bar-label{overflow-wrap:anywhere}.bar-track{display:flex;height:12px;border-radius:3px;overflow:hidden;background:var(--line)}.bar-fill{height:100%}.bar-value{font-variant-numeric:tabular-nums;text-align:right;min-width:60px}.price-controls{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin-top:20px}.price-controls input{font:inherit;background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:5px;padding:10px;width:100%}.price-controls button{background:transparent;border:1px solid var(--line);color:var(--text);border-radius:5px;padding:10px;font-size:12px;cursor:pointer}.price-controls input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.cost-summary{font-size:14px;color:var(--accent);line-height:1.8}.cost-records{margin-top:20px}#price-source a{text-decoration:underline}

#cost-overview{margin-top:56px}#calibration{margin-top:48px}#calibration .panel{margin-top:20px}.callout{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:9px;background:var(--panel);padding:20px 24px}.callout strong{display:block;font-size:34px;font-weight:500;color:var(--accent);font-variant-numeric:tabular-nums;margin-bottom:8px}.callout p{margin:0;font-size:12px;color:var(--muted);line-height:1.8}.callout p+p{margin-top:8px}.legend span{align-self:center;font-size:10px;color:var(--muted)}#reliability .chart svg{max-width:620px;margin:0 auto}#reliability-bins{margin-top:10px}#reliability-bins table{font-size:11px}#pricing-table table td:first-child{font-weight:600}#model-costs{margin-top:4px}#price-note{margin-top:10px}#cost-window{margin-bottom:4px}

.how{margin:58px 0 10px}
.how-lede{max-width:940px;margin:0 0 10px;color:var(--muted);font-size:15px;line-height:1.9}
.how .how-hint{margin:0 0 26px;color:var(--muted);font:11px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.6px}
.how-steps{list-style:none;counter-reset:how;margin:0 0 30px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.how-steps li{counter-increment:how;border:1px solid var(--line);border-radius:9px;background:var(--panel);padding:18px;font-size:12.5px;color:var(--muted);line-height:1.8}
.how-steps li:before{content:"0" counter(how);display:block;color:var(--accent);font:11px ui-monospace,SFMono-Regular,Consolas,monospace;margin-bottom:10px}
.how-steps strong{display:block;color:var(--text);margin-bottom:6px;font-size:13px}
.how-sub{font-size:15px;font-weight:600;margin:0 0 14px}
.how-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px 24px;margin:0 0 26px}
.how-notes p{margin:0;border-left:2px solid var(--accent);padding:2px 0 2px 14px;color:var(--muted);font-size:12px;line-height:1.8}
.how-notes strong{display:block;color:var(--text);margin-bottom:3px}
.how-links{display:flex;gap:22px;flex-wrap:wrap;font-size:12px}
.how-links a{color:var(--accent)}

.metric strong + p{margin-top:10px;line-height:1.6}
.metric p.metric-note{font-size:11px;color:var(--muted)}

/* Thirteen columns is a lot: trim the gutters so the whole board fits on a laptop. */
#leaderboard-table th,#leaderboard-table td{padding-left:9px;padding-right:9px}
#leaderboard-table table{font-size:11.5px}

/* Board polish: rank 1 earns the eye, return deltas read as chips, and a row
   opens its run. On phones the four columns that need context to read (Sharpe,
   drawdown, both calibration scores) wait for the run page, and rows get
   taller so a tap lands. */
.model-logo{width:16px;height:16px;border-radius:3px;margin-right:7px;vertical-align:-3px;object-fit:contain}
/* TypeSafe, Liquid and Jared Palmer ship black marks: invert for the dark page. */
img.model-logo[src$="typesafe.png"],img.model-logo[src$="liquid.ico"],img.model-logo[src$="jaredpalmer.ico"]{filter:invert(1)}
#leaderboard-table tbody tr{cursor:pointer}
tr.leader td{background:rgba(180,242,114,.07)}
tr.leader td:first-child{box-shadow:inset 2px 0 0 var(--accent)}
tr.leader .run-button{color:var(--accent)}
.chip{display:inline-block;border-radius:99px;padding:2px 8px;white-space:nowrap}
.chip.positive{color:var(--accent);background:rgba(180,242,114,.09);border:1px solid rgba(180,242,114,.35)}
.chip.negative{color:var(--red);background:rgba(255,146,146,.09);border:1px solid rgba(255,146,146,.35)}
#leaderboard{margin-top:18px}

/* Run page: the two headline tiles (portfolio return, excess vs SPY) read first. */
.metric-hero{border-color:rgba(180,242,114,.4)}
.metric-hero strong{font-size:36px}

/* Window toggle: the board scores consecutive six-month windows; the chips
   pick one window or the all-windows average. */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px}
.tab{border:1px solid var(--line);border-radius:99px;background:transparent;color:var(--muted);padding:8px 14px;font-size:12px;cursor:pointer}
.tab:hover{color:var(--text);border-color:var(--muted)}
.tab.active{color:#12220a;background:var(--accent);border-color:var(--accent);font-weight:600}
.cell-note{display:block;font-size:10px;color:var(--muted);margin-top:3px;white-space:nowrap}

@media(max-width:760px){
  .col-outperformance_hit_rate,.col-max_drawdown,.col-hold,.col-accuracy{display:none}
  .col-worst_gap,.col-beat_in{display:none}
  #leaderboard-table th,#leaderboard-table td{padding-top:16px;padding-bottom:16px}
  .metric-hero strong{font-size:30px}
}
