:root{color-scheme:dark;--bg: #070b15;--surface: #101729;--surface-2: #0a101f;--surface-3: #161f36;--border: #233048;--border-soft: rgba(148, 163, 184, .09);--text: #dbe4f3;--text-strong: #f7faff;--text-muted: #97a5c0;--text-subtle: #64748b;--accent: #818cf8;--accent-strong: #6366f1;--accent-soft: rgba(99, 102, 241, .14);--grad-accent: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--chart-grid: rgba(71, 85, 125, .28);--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 10px 28px -14px rgba(0, 0, 0, .55);--radius: 14px;--color-actual: #3b82f6;--color-timesfm: #818cf8;--color-prophet: #eab308;--color-chronos: #10b981;--color-expsmoothing: #ec4899;--card: var(--surface);--muted: var(--text-muted);--primary: var(--accent-strong);--primary-dark: #4f46e5;--green: var(--color-chronos);--red: #f87171}:root[data-theme=light]{color-scheme:light;--bg: #f3f5fb;--surface: #ffffff;--surface-2: #eef1f8;--surface-3: #e6ebf5;--border: #d9e0ed;--border-soft: rgba(100, 116, 139, .12);--text: #2b3650;--text-strong: #101727;--text-muted: #51607c;--text-subtle: #6b7a96;--accent: #4f46e5;--accent-strong: #4f46e5;--accent-soft: rgba(79, 70, 229, .1);--chart-grid: rgba(148, 163, 184, .35);--shadow: 0 1px 2px rgba(20, 30, 50, .06), 0 10px 28px -16px rgba(20, 30, 50, .18);--primary-dark: #4338ca;--green: #059669;--red: #dc2626}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1;background:radial-gradient(900px 520px at 12% -6%,rgba(99,102,241,.1),transparent 60%),radial-gradient(820px 520px at 100% 0%,rgba(139,92,246,.08),transparent 55%)}.app{max-width:100%;min-height:100vh;margin:0;padding:20px 24px 48px;display:flex;flex-direction:column;gap:18px}.brand-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--border)}.app-header{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.app-header h1{margin:0 0 4px;font-size:24px;color:var(--text-strong)}.app-header p{margin:0;color:var(--muted)}.theme-toggle{flex:none;width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:17px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted)}.theme-toggle:hover{color:var(--text-strong);border-color:var(--accent)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}.card h2{margin:0 0 14px;font-size:16px;color:var(--text-strong)}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-head h2,.card-head h3{margin:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 880px){.two-col{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:6px;position:relative}.field label{font-weight:600;font-size:12.5px;color:var(--text-muted)}.field-count{font-weight:400;color:var(--text-subtle, var(--muted))}input,select{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);color:var(--text);width:100%}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}small.muted{font-weight:400}.selector-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}@media (max-width: 880px){.selector-grid{grid-template-columns:1fr 1fr}}.horizon-row{display:flex;gap:8px}.horizon-row select{flex:1}.horizon-row input{width:80px}.run-row{display:flex;align-items:center;gap:14px;margin-top:14px}button{font:inherit;cursor:pointer;border-radius:7px;border:1px solid transparent;padding:8px 14px}.btn-primary{background:var(--accent-strong);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{background:var(--surface-3);color:var(--text-subtle);cursor:not-allowed}.btn-secondary{background:var(--surface-2);border-color:var(--border);color:var(--text)}.btn-link{background:none;color:var(--accent);padding:4px 6px;border:none}.btn-link:hover{text-decoration:underline}.ac-wrap{position:relative}.ac-clear{position:absolute;right:6px;top:6px;background:none;border:none;font-size:16px;color:var(--muted);padding:0 6px}.ac-list{position:absolute;z-index:30;top:calc(100% + 2px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:7px;box-shadow:var(--shadow);max-height:240px;overflow-y:auto}.ac-item{padding:8px 10px;cursor:pointer}.ac-item:hover{background:var(--surface-3)}.ac-item.muted{cursor:default}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}.data-table th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.data-table th[title]{cursor:help;text-decoration:underline dotted;text-underline-offset:3px;text-decoration-color:var(--text-subtle)}.data-table td.num,.data-table th.num{text-align:right;font-variant-numeric:tabular-nums}.kpi td.num{text-align:right}.data-table .strong{font-weight:700}.winner-row{background:var(--accent-soft)}.join-file{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}.join-file input[type=file]{width:auto;flex:1;min-width:220px;padding:10px;border:1px dashed var(--border);background:var(--surface-2);cursor:pointer}.join-map-head{margin-top:18px}.join-preview{margin-top:16px;overflow-x:auto;border:1px solid var(--border);border-radius:8px}.join-preview .data-table{font-size:13px}.join-preview .data-table th,.join-preview .data-table td{white-space:nowrap}.join-preview .data-table td.join-cell-on{background:var(--accent-soft);color:var(--text)}.join-pill{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--accent-strong);color:#fff;font-size:10px;font-weight:700;letter-spacing:.02em;text-transform:none;vertical-align:middle}.join-success{text-align:center;max-width:620px;margin:32px auto}.join-success .run-row{justify-content:center}.join-check{width:56px;height:56px;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);font-size:28px;font-weight:800}.row-actions{display:flex;gap:8px}.row-actions button{background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:4px 10px}.tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;margin-left:4px}.tag.yes{background:#10b98129;color:#34d399}.tag.no{background:#ef444429;color:#f87171}.winner-card{display:flex;align-items:center;gap:20px;background:var(--grad-accent);color:#fff;border-radius:var(--radius);padding:20px 26px;box-shadow:var(--shadow)}.winner-medal{font-size:46px}.winner-label{text-transform:uppercase;letter-spacing:.08em;font-size:12px;opacity:.85}.winner-name{font-size:30px;font-weight:700;line-height:1.1}.winner-metrics{display:flex;gap:22px;margin-top:6px;font-size:15px}.winner-metrics strong{font-size:18px}.winner-meta{margin-left:auto;text-align:right;font-size:13px;opacity:.9;display:flex;flex-direction:column;gap:2px}.winner-meta-warn{color:var(--color-prophet);font-size:12px}.charts{display:flex;flex-direction:column;gap:18px}.chart-box{position:relative;height:320px}.chart-box-tall{height:420px}.chart-box canvas{width:100%!important}.spinner-wrap{display:inline-flex;align-items:center;gap:8px}.spinner{width:15px;height:15px;flex:none;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;display:inline-block;animation:spin .7s linear infinite}.spinner.light{border-color:#ffffff73;border-top-color:#fff}@keyframes spin{to{transform:rotate(360deg)}}.region-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.region-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--border);border-radius:999px;font-size:13px;cursor:pointer;background:var(--surface-2);color:var(--text);-webkit-user-select:none;user-select:none}.region-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.region-chip input{width:auto;margin:0}.region-tag{display:inline-block;margin-left:6px;padding:0 7px;border-radius:999px;background:var(--surface-3);color:var(--muted);font-size:11px;vertical-align:middle}.switch-label{display:flex;align-items:center;gap:8px;font-size:13px}.switch-label input{width:auto}.holiday-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 16px;margin-top:12px;max-height:260px;overflow-y:auto}.holiday-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:13px}.holiday-item input{width:auto}.event-key{display:flex;flex-wrap:wrap;gap:6px 16px;margin:12px 2px 4px;font-size:12px;color:var(--muted)}.event-key-item{display:inline-flex;align-items:center;gap:6px}.event-key-swatch{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:middle}.event-impact-title{margin:18px 0 8px;font-size:13px}.data-table td.pos{color:var(--green);font-weight:600}.data-table td.neg{color:var(--red);font-weight:600}.pos{color:var(--green)}.neg{color:var(--red)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#04081299;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;width:440px;max-width:100%;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px;box-shadow:0 12px 40px #00000073}.modal.wide{width:720px}.modal h3{margin:0;color:var(--text-strong)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.fc-values-table thead th{position:sticky;top:0;background:var(--surface);z-index:1}.fc-values-table tfoot td{position:sticky;bottom:0;background:var(--surface)}.why-formula{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.why-formula code{font-size:13px;color:var(--accent)}.why-calc{margin-top:6px;font-size:15px}.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.why-grid>div{display:flex;flex-direction:column;gap:2px;background:var(--surface-2);border-radius:8px;padding:8px 10px}.why-grid strong{font-size:15px}.why-notes{color:var(--muted);font-style:italic}.ss-points{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px}.ss-points li{color:var(--muted);line-height:1.45}.ss-points strong{color:var(--text-strong)}.error-banner{border-color:#ef444459;background:#ef44441f;color:#fca5a5}.error-text{color:var(--red)}.loading-banner{background:#f59e0b1f;border-color:#f59e0b59;color:#fcd34d}.excl-list{margin:6px 0 0;padding-left:18px}.excl-list li{margin-bottom:4px}.muted{color:var(--muted)}.help[title]{cursor:help;text-decoration:underline dotted;text-underline-offset:3px;text-decoration-color:var(--text-subtle)}.app-footer{position:relative;isolation:isolate;color:var(--muted);font-size:12.5px;text-align:center;margin-top:auto;padding:40px 0 10px}.app-footer:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:url(/logo.png) no-repeat center;background-size:auto 60px;opacity:.1;pointer-events:none}[data-theme=dark] .app-footer:before{filter:brightness(0) invert(1);opacity:.09}h4{margin:8px 0 6px;color:var(--text-strong)}.header-actions{display:flex;align-items:center;gap:12px}.nav-link{color:var(--accent);text-decoration:none;font-size:13px;font-weight:600;padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);white-space:nowrap}.nav-link:hover{border-color:var(--accent)}.brand-logo{height:34px;width:auto;display:block;flex:none}[data-theme=dark] .brand-logo{filter:brightness(0) invert(1)}.picker-head{display:flex;justify-content:space-between;align-items:center;margin:16px 0 8px;gap:12px}.field-label{font-weight:600;font-size:12.5px;color:var(--text-muted)}.value-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 16px;max-height:280px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--surface-2)}.value-item{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;overflow:hidden}.value-item input{width:auto;flex:none}.value-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress{display:flex;flex-direction:column;gap:8px}.progress-label{display:flex;justify-content:space-between;gap:12px;font-size:13px}.progress-track{height:10px;border-radius:999px;background:var(--surface-3);overflow:hidden}.progress-fill{height:100%;background:var(--grad-accent);border-radius:999px;transition:width .3s ease}.algo-summary{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}.algo-summary-label{font-weight:600;color:var(--text-strong)}.algo-summary-pills{display:flex;flex-wrap:wrap;gap:8px}.algo-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(max(260px,(100% - 30px) / 4),1fr));gap:10px}.algo-result-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.algo-result-head{display:flex;align-items:baseline;gap:8px;min-width:0}.algo-result-name{font-weight:600;color:var(--text-strong);min-width:0;word-break:break-word}.algo-result-time{font-size:12px;font-variant-numeric:tabular-nums}.algo-result-row .algo-pill{flex:1 1 100%;flex-wrap:wrap;justify-content:space-between;white-space:normal}.algo-pill{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;font-size:13px;border:1px solid var(--border);background:var(--surface-3);color:var(--text);white-space:nowrap;flex:none}.algo-pill-name{font-weight:700}.algo-pill-stats{font-size:12px;color:var(--muted)}.algo-pill.algo-timesfm{border-color:var(--color-timesfm);background:#818cf824}.algo-pill.algo-timesfm .algo-pill-name{color:var(--color-timesfm)}.algo-pill.algo-prophet{border-color:var(--color-prophet);background:#eab30824}.algo-pill.algo-prophet .algo-pill-name{color:var(--color-prophet)}.algo-pill.algo-chronos{border-color:var(--color-chronos);background:#10b98124}.algo-pill.algo-chronos .algo-pill-name{color:var(--color-chronos)}.algo-pill.algo-expsmoothing{border-color:var(--color-expsmoothing);background:#ec489924}.algo-pill.algo-expsmoothing .algo-pill-name{color:var(--color-expsmoothing)}.algo-pill.algo-none,.algo-pill.algo-running{color:var(--muted)}.algo-pill.algo-error{border-color:#ef444466;background:#ef44441f;color:var(--red)}.algo-pill.algo-insufficient{border-color:#94a3b866;background:#94a3b81f;color:var(--muted)}.algo-pill-excluded{color:var(--color-prophet)}.sim-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 14px}.sim-filter{flex:1 1 220px;min-width:160px}.sim-sort{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-muted)}.sim-sort select{width:auto}.sim-error{margin-top:12px;padding:10px 12px;border:1px solid rgba(239,68,68,.35);border-radius:10px}.saved-runs{display:flex;flex-direction:column;gap:8px}.saved-run-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.saved-run-row.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.saved-run-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.saved-run-label{font-weight:600;color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-run-actions{display:flex;gap:8px;flex:none}.btn-danger{background:#ef44441f;border:1px solid rgba(239,68,68,.35);color:var(--red);padding:4px 10px}.btn-danger:disabled{opacity:.5}.sku-link{color:var(--accent);text-decoration:none;cursor:pointer}.sku-link:hover{text-decoration:underline}.landing{--font-display: "Sora", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;--l-bg: #05060d;--l-panel: rgba(140, 170, 255, .05);--l-panel-2: rgba(140, 170, 255, .03);--l-line: rgba(150, 180, 255, .13);--l-line-strong: rgba(150, 180, 255, .24);--l-grid-line: rgba(120, 160, 255, .05);--l-ink: #eaf0ff;--l-muted: #99a7cd;--l-faint: #5d6a8e;--l-accent: #2fe0ff;--l-accent-2: #8b7bff;--l-accent-3: #ff4d9d;--l-accent-ink: #04121a;--l-grad: linear-gradient(100deg, #2fe0ff 0%, #6e8bff 48%, #b14cff 100%);--l-glow: rgba(47, 224, 255, .55);--l-actual: #2fe0ff;--s-timesfm: #8b7bff;--s-chronos: #2bf5a0;--s-prophet: #ffb020;--s-exp: #ff4d9d;--l-shadow: 0 24px 70px -34px rgba(0, 0, 0, .95);--l-shadow-lift: 0 30px 80px -30px rgba(0, 0, 0, 1);position:relative;max-width:none;width:100%;margin:0;padding:22px clamp(20px,4.5vw,84px) 84px;gap:clamp(52px,6vw,92px)}:root[data-theme=light] .landing{--l-bg: #eef2fb;--l-panel: rgba(255, 255, 255, .72);--l-panel-2: rgba(255, 255, 255, .55);--l-line: rgba(28, 48, 96, .13);--l-line-strong: rgba(28, 48, 96, .22);--l-grid-line: rgba(40, 70, 130, .06);--l-ink: #0a1228;--l-muted: #47557a;--l-faint: #7886a6;--l-accent: #2f6bff;--l-accent-2: #7b3cff;--l-accent-3: #ff2e86;--l-accent-ink: #ffffff;--l-grad: linear-gradient(100deg, #06b6d4 0%, #3f6bff 48%, #8b3cff 100%);--l-glow: rgba(47, 107, 255, .4);--l-actual: #0aa6d6;--s-timesfm: #6d4bff;--s-chronos: #0eb87a;--s-prophet: #d98a00;--s-exp: #e0297f;--l-shadow: 0 24px 60px -34px rgba(20, 30, 60, .4);--l-shadow-lift: 0 30px 70px -30px rgba(20, 30, 60, .45)}.landing:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(900px 620px at 10% -6%,rgba(47,224,255,.1),transparent 60%),radial-gradient(820px 600px at 96% -2%,rgba(123,108,255,.13),transparent 56%),radial-gradient(760px 560px at 78% 108%,rgba(255,77,157,.07),transparent 60%),var(--l-bg)}.landing:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:linear-gradient(var(--l-grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--l-grid-line) 1px,transparent 1px);background-size:50px 50px;-webkit-mask-image:radial-gradient(125% 90% at 50% 0%,#000 28%,transparent 76%);mask-image:radial-gradient(125% 90% at 50% 0%,#000 28%,transparent 76%)}.l-eyebrow{font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--l-muted);display:inline-flex;align-items:center;gap:11px}.l-eyebrow:before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--l-accent);box-shadow:0 0 12px var(--l-accent)}.l-hero .l-eyebrow:before{animation:l-pulse 2s ease-in-out infinite}.landing h1{font-family:var(--font-display);font-weight:800;font-size:clamp(40px,6vw,86px);line-height:1;letter-spacing:-.03em;color:var(--l-ink);margin:22px 0 0}.landing .l-em{font-family:var(--font-display);font-weight:800;background:var(--l-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 22px rgba(47,224,255,.28))}.landing h2{font-family:var(--font-display);font-weight:700;font-size:clamp(26px,3vw,40px);line-height:1.06;letter-spacing:-.025em;color:var(--l-ink);margin:16px 0 0}.l-lede{font-family:var(--font-body);font-size:17px;line-height:1.6;color:var(--l-muted);max-width:60ch;margin:14px 0 0}.l-plot,.l-model,.l-fig{background:var(--l-panel);border:1px solid var(--l-line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.landing .brand-bar{border-bottom:1px solid var(--l-line);padding-bottom:12px}.landing .nav-link{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:500;color:var(--l-muted);background:var(--l-panel-2);border:1px solid var(--l-line);border-radius:8px;padding:9px 15px}.landing .nav-link:hover{border-color:var(--l-accent);color:var(--l-ink);box-shadow:0 0 0 1px var(--l-accent),0 0 18px -4px var(--l-glow)}.landing .nav-link-cta{background:var(--l-accent);border-color:var(--l-accent);color:var(--l-accent-ink);font-weight:700;box-shadow:0 0 22px -6px var(--l-glow)}.landing .nav-link-cta:hover{background:var(--l-accent);filter:brightness(1.08);color:var(--l-accent-ink)}.landing .theme-toggle{background:var(--l-panel-2);border:1px solid var(--l-line);color:var(--l-muted);border-radius:8px}.landing .theme-toggle:hover{color:var(--l-ink);border-color:var(--l-accent)}.l-btn{font-family:var(--font-mono);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:15px 24px;border-radius:9px;border:1px solid transparent;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;gap:8px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,filter .18s ease}.l-btn-primary{background:var(--l-accent);color:var(--l-accent-ink);box-shadow:0 0 0 1px #ffffff14 inset,0 14px 34px -10px var(--l-glow)}.l-btn-primary:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 18px 44px -10px var(--l-glow)}.l-btn-ghost{color:var(--l-ink);border-color:var(--l-line-strong);background:var(--l-panel-2)}.l-btn-ghost:hover{border-color:var(--l-accent);transform:translateY(-2px);box-shadow:0 0 22px -6px var(--l-glow)}.landing a:focus-visible,.landing button:focus-visible{outline:2px solid var(--l-accent);outline-offset:3px;border-radius:9px}.l-hero{position:relative;display:grid;grid-template-columns:1fr 1.12fr;gap:clamp(28px,4vw,64px);align-items:center;min-height:calc(100vh - 150px);min-height:calc(100svh - 150px);margin-top:calc(4px - clamp(52px,6vw,92px));padding:0 0 60px}.l-hero:after{content:"Scroll to explore ↓";position:absolute;left:0;bottom:12px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--l-faint);animation:l-bob 2.4s ease-in-out infinite}@keyframes l-bob{0%,to{transform:translateY(0);opacity:.65}50%{transform:translateY(4px);opacity:1}}.l-deck{font-family:var(--font-body);font-size:clamp(17px,1.4vw,20px);line-height:1.62;color:var(--l-muted);max-width:34em;margin:24px 0 30px}.l-cta{display:flex;flex-wrap:wrap;gap:12px}.l-note{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--l-faint);margin:22px 0 0}.l-plot{margin:0;border-radius:18px;padding:20px 22px 16px;box-shadow:var(--l-shadow);display:flex;flex-direction:column;gap:14px}.l-plot-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.l-legend{display:flex;gap:16px;font-family:var(--font-mono);font-size:11px;color:var(--l-muted)}.l-legend-item{display:inline-flex;align-items:center;gap:7px}.l-swatch{width:16px;height:3px;border-radius:2px;display:inline-block}.l-swatch-actual{background:var(--l-actual);box-shadow:0 0 8px var(--l-actual)}.l-swatch-fc{background:var(--l-accent-2);box-shadow:0 0 8px var(--l-accent-2)}.l-plot-svg{width:100%;height:auto;display:block}.l-plot-svg text{font-family:var(--font-mono)}.l-grid{stroke:var(--l-line);stroke-width:1}.l-grid-base{stroke:var(--l-line-strong)}.l-win{fill:var(--l-accent-2);opacity:.07}.l-win-edge{stroke:var(--l-accent-2);stroke-width:1;stroke-dasharray:3 4;opacity:.6}.l-win-label{fill:var(--l-faint);font-size:10px;letter-spacing:.16em}.l-axis{fill:var(--l-faint);font-size:11px;letter-spacing:.06em}.l-band{fill:var(--l-accent-2);opacity:0;animation:l-band-in .8s ease 1.6s forwards}.l-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.l-line-actual{stroke:var(--l-actual);stroke-width:3;filter:drop-shadow(0 0 6px var(--l-actual));stroke-dasharray:1;stroke-dashoffset:1;animation:l-draw 1.2s cubic-bezier(.4,.5,.2,1) .2s forwards}.l-line-fc{stroke:var(--l-accent-2);stroke-width:2.5;filter:drop-shadow(0 0 6px var(--l-accent-2));stroke-dasharray:1;stroke-dashoffset:1;animation:l-draw 1s cubic-bezier(.4,.5,.2,1) 1.05s forwards}.l-dot{opacity:0;transform-box:fill-box;transform-origin:center;animation:l-pop .4s cubic-bezier(.2,1.2,.4,1) forwards}.l-dot-actual{fill:var(--l-actual);filter:drop-shadow(0 0 5px var(--l-actual))}.l-dot-fc{fill:var(--l-accent-2);filter:drop-shadow(0 0 5px var(--l-accent-2))}.l-plot-foot{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--l-faint);border-top:1px solid var(--l-line);padding-top:12px}.l-wape{color:var(--l-muted)}.l-wape b{color:var(--l-accent);font-size:13px;text-shadow:0 0 12px var(--l-glow)}@keyframes l-draw{to{stroke-dashoffset:0}}@keyframes l-band-in{to{opacity:.16}}@keyframes l-pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes l-pulse{0%,to{opacity:1;box-shadow:0 0 12px var(--l-accent)}50%{opacity:.45;box-shadow:0 0 4px var(--l-accent)}}.l-rule{display:flex;height:3px;width:100%;border-radius:2px;overflow:hidden;box-shadow:0 0 24px -6px var(--l-glow)}.l-sec-head{display:flex;flex-direction:column;align-items:flex-start;max-width:64ch;margin-bottom:-40px}.l-inputs{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center;padding:8px 0}.l-spec{list-style:none;margin:0;padding:0;border-top:1px solid var(--l-line-strong)}.l-spec-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 4px;border-bottom:1px solid var(--l-line)}.l-spec-name{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:14px;letter-spacing:.01em;color:var(--l-ink)}.l-spec-row.off .l-spec-name{color:var(--l-faint);text-decoration:line-through;text-decoration-color:var(--l-line-strong)}.l-spec-mark{flex:none;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;font-size:11px;text-decoration:none}.l-spec-row.on .l-spec-mark{background:#2bf5a029;color:var(--s-chronos);box-shadow:0 0 14px -4px var(--s-chronos)}.l-spec-row.off .l-spec-mark{background:var(--l-line);color:var(--l-faint)}.l-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:5px 10px;border-radius:999px;white-space:nowrap}.l-tag.req{background:var(--l-accent);color:var(--l-accent-ink);font-weight:700;box-shadow:0 0 18px -5px var(--l-glow)}.l-tag.no{color:var(--l-faint);border:1px solid var(--l-line-strong)}.l-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0}.l-step{position:relative;border-top:1px solid var(--l-line-strong);padding:30px 26px 6px 0}.l-step:before{content:"";position:absolute;top:0;left:0;width:9px;height:9px;border-radius:50%;background:var(--l-bg);border:2px solid var(--l-faint);transform:translateY(-50%)}.l-step:last-child:before{background:var(--l-accent);border-color:var(--l-accent);box-shadow:0 0 16px var(--l-accent)}.l-step-idx{font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--l-accent)}.l-step h3{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.015em;color:var(--l-ink);margin:14px 0 9px}.l-step p{font-family:var(--font-body);font-size:14.5px;line-height:1.58;color:var(--l-muted);margin:0}.l-field-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.l-model{position:relative;border-top:2px solid var(--series);border-radius:16px;padding:22px 20px;box-shadow:var(--l-shadow);transition:opacity .6s ease,translate .6s cubic-bezier(.22,.61,.36,1),transform .25s ease,box-shadow .25s ease}.l-model-timesfm{--series: var(--s-timesfm)}.l-model-chronos{--series: var(--s-chronos)}.l-model-prophet{--series: var(--s-prophet)}.l-model-expsmoothing{--series: var(--s-exp)}.l-model:hover{transform:translateY(-5px);box-shadow:0 0 0 1px var(--series),0 26px 60px -28px var(--series),var(--l-shadow)}.l-model-name{display:block;font-family:var(--font-display);font-weight:700;font-size:20px;letter-spacing:-.015em;color:var(--l-ink)}.l-model-by{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--series);margin-top:6px}.l-model p{font-family:var(--font-body);font-size:14px;line-height:1.56;color:var(--l-muted);margin:14px 0 0}.l-figs{display:grid;grid-template-columns:1fr 1fr;gap:22px}.l-fig{margin:0;border-radius:16px;padding:16px 16px 18px;box-shadow:var(--l-shadow)}.l-fig-head{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--l-muted);border-bottom:1px solid var(--l-line);padding-bottom:10px;margin-bottom:14px}.l-fig img{width:100%;height:auto;display:block;border:1px solid var(--l-line);border-radius:10px;background:#fff}.l-fig figcaption{font-family:var(--font-body);font-size:14px;line-height:1.58;color:var(--l-muted);max-width:52ch;margin-top:16px}.landing .app-footer{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--l-faint)}@keyframes fade-up{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.landing .hero-copy>*{animation:fade-up .7s cubic-bezier(.22,.61,.36,1) both}.landing .hero-copy>*:nth-child(1){animation-delay:.05s}.landing .hero-copy>*:nth-child(2){animation-delay:.12s}.landing .hero-copy>*:nth-child(3){animation-delay:.2s}.landing .hero-copy>*:nth-child(4){animation-delay:.28s}.landing .hero-copy>*:nth-child(5){animation-delay:.36s}.landing .reveal{opacity:0;translate:0 22px;transition:opacity .6s ease,translate .6s cubic-bezier(.22,.61,.36,1)}.landing .reveal.in{opacity:1;translate:0}.landing .l-field-grid .l-model{transition:opacity .6s ease,translate .6s cubic-bezier(.22,.61,.36,1),transform .25s ease,box-shadow .25s ease}.landing .l-field-grid .l-model:nth-child(2){transition-delay:.08s,.08s,0s,0s}.landing .l-field-grid .l-model:nth-child(3){transition-delay:.16s,.16s,0s,0s}.landing .l-field-grid .l-model:nth-child(4){transition-delay:.24s,.24s,0s,0s}.landing .l-steps .l-step:nth-child(2),.landing .l-figs .l-fig:nth-child(2){transition-delay:.08s}.landing .l-steps .l-step:nth-child(3){transition-delay:.16s}.landing .l-steps .l-step:nth-child(4){transition-delay:.24s}@media (prefers-reduced-motion: reduce){.landing .hero-copy>*{animation:none}.landing .l-hero .l-eyebrow:before{animation:none}.landing .reveal{opacity:1;translate:none}.landing .l-line-actual,.landing .l-line-fc{animation:none;stroke-dashoffset:0}.landing .l-band{animation:none;opacity:.16}.landing .l-dot{animation:none;opacity:1}.landing .l-model:hover,.landing .l-btn:hover{transform:none}.landing .l-hero:after{animation:none}}@media (max-width: 980px){.l-hero,.l-inputs,.l-figs{grid-template-columns:1fr}.l-hero{min-height:0}.l-hero:after{display:none}.l-steps,.l-field-grid{grid-template-columns:1fr 1fr}}@media (max-width: 560px){.l-steps,.l-field-grid{grid-template-columns:1fr}.l-cta{flex-direction:column;align-items:stretch}.l-btn{justify-content:center}}
