.landing{--bg:#0d0d0d;--surface:#1a1a1a;--surface2:#141414;--a:#2a9d90;--b:#e8723a;--c:#d4a843;--cream:#f5f3ef;--muted:#f5f3efb3;--subtle:#f5f3ef80;--hair:#f5f3ef26;--edge:#f5f3ef24;background:var(--bg);color:var(--cream);font-family:var(--font-inter), "Neue Montreal", Helvetica, Arial, sans-serif;z-index:2;background-image:repeating-linear-gradient(90deg,#f5f3ef0a 0 1px,#0000 1px 120px);font-size:16px;line-height:1.55;position:relative;overflow-x:clip}.landing a{color:var(--cream)}.landing .serif{font-family:var(--font-playfair-display), Georgia, serif;letter-spacing:-.01em;font-weight:500}.landing .mono{font-family:var(--font-dm-mono), Menlo, monospace}.landing .muted{color:var(--muted)}.landing .subtle{color:var(--subtle)}.landing .wrap{max-width:1248px;margin:0 auto;padding-inline:24px}.landing .btn{background:var(--cream);color:#0d0d0d;border-radius:999px;align-items:center;padding:13px 22px;font-size:15px;font-weight:500;text-decoration:none;transition:transform .2s;display:inline-flex}.landing .btn:hover{transform:translateY(-1px)}.landing .badge{font-family:var(--font-dm-mono), Menlo, monospace;letter-spacing:.08em;text-transform:uppercase;border:1px solid;border-radius:999px;padding:3px 7px;font-size:9px;font-style:normal;line-height:1;display:inline-block}.landing .b-observed{color:var(--a);border-color:color-mix(in srgb, var(--a) 50%, transparent);background:color-mix(in srgb, var(--a) 14%, transparent)}.landing .b-inferred{color:var(--b);border-color:color-mix(in srgb, var(--b) 50%, transparent);background:color-mix(in srgb, var(--b) 14%, transparent)}.landing .b-assumed{color:var(--c);border-color:color-mix(in srgb, var(--c) 50%, transparent);background:color-mix(in srgb, var(--c) 14%, transparent)}.landing .b-illustrative{color:var(--subtle);border-color:var(--hair)}.landing .top{z-index:30;pointer-events:none;justify-content:space-between;align-items:center;padding:22px 32px;display:flex;position:fixed;inset:0 0 auto}.landing .top>*{pointer-events:auto}.landing .top .mark{height:20px;color:var(--cream);align-items:center;text-decoration:none;display:flex}.landing .top .mark svg{width:auto;height:20px;display:block}.landing .top .demo{font-family:var(--font-dm-mono), Menlo, monospace;color:var(--subtle);font-size:11px;text-decoration:none}.landing .top .demo:hover{color:var(--cream)}.landing #journey{background:var(--bg);height:100vh;position:relative;overflow:hidden}.landing #journey .scene,.landing #journey .mapboxgl-map{position:absolute;inset:0}.landing #poster{object-fit:cover;opacity:1;pointer-events:none;width:100%;height:100%;transition:opacity .6s;position:absolute;inset:0}.landing #journey.live #poster{opacity:0}.landing .scrim{pointer-events:none;background:radial-gradient(ellipse 55% 75% at 22% 55%, color-mix(in srgb, var(--bg) 92%, transparent) 0%, color-mix(in srgb, var(--bg) 55%, transparent) 45%, transparent 75%);position:absolute;inset:0}.landing .entry{z-index:5;flex-direction:column;gap:18px;max-width:600px;display:flex;position:absolute;top:18vh;left:32px}.landing .entry .name{margin:0;font-size:clamp(64px,9vw,120px);font-weight:400;line-height:.95}.landing .entry .def{color:#f5f3efd9;max-width:46ch;margin:0;font-size:14px;line-height:1.6}.landing .entry h1{margin:8px 0 0;font-size:clamp(30px,3.4vw,44px);line-height:1.12}.landing .entry p.lead{max-width:52ch;margin:0;font-size:17px}.landing .note{z-index:5;font-family:var(--font-dm-mono), Menlo, monospace;letter-spacing:.04em;color:var(--subtle);align-items:center;gap:10px;font-size:11px;display:flex;position:absolute;bottom:32px;right:32px}.landing .note i{background:var(--a);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--a) 25%, transparent);border-radius:999px}.landing .panel{z-index:5;opacity:0;max-width:480px;position:absolute}.landing #p-three:before,.landing #p-bus:before,.landing #p-labels:before,.landing .beat:before{content:"";z-index:-1;background:radial-gradient(ellipse at 50% 50%, color-mix(in srgb, var(--bg) 88%, transparent) 0%, color-mix(in srgb, var(--bg) 70%, transparent) 50%, transparent 78%);pointer-events:none;position:absolute;inset:-48px -64px}.landing .panel h2{margin:0 0 12px;font-size:clamp(32px,3.6vw,48px);line-height:1.08}.landing .panel p{max-width:46ch;margin:0 0 12px;font-size:17px}.landing #p-three{bottom:14vh;left:32px}.landing #p-bus{top:16vh;right:32px}.landing #p-chart{background:linear-gradient(to top, var(--bg) 0%, color-mix(in srgb, var(--bg) 92%, transparent) 55%, transparent 100%);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;gap:48px;max-width:none;padding:18vh 32px 8vh;display:grid;bottom:0;left:0;right:0}.landing #p-chart .copy{max-width:440px}.landing #chart{width:100%;height:300px;overflow:visible}.landing #chart .supply{fill:none;stroke:#f5f3ef59;stroke-width:1.5px}.landing #chart .demand{fill:none;stroke:var(--a);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.landing #chart .glow{fill:none;stroke:var(--a);stroke-width:14px;opacity:.14;filter:blur(10px)}.landing #chart .axis{font-family:var(--font-dm-mono), Menlo, monospace;fill:var(--subtle);letter-spacing:.06em;font-size:10px}.landing .legend{font-family:var(--font-dm-mono), Menlo, monospace;color:var(--subtle);gap:18px;margin-top:10px;font-size:11px;display:flex}.landing .legend i{vertical-align:middle;background:#f5f3ef59;width:18px;height:2px;margin-right:8px;display:inline-block}.landing .legend i.demand{background:var(--a);height:3px}.landing #p-labels{width:440px;top:14vh;right:32px}.landing #p-labels .grid{grid-template-columns:1fr;gap:8px;margin-top:16px;display:grid}.landing #p-labels .row{color:var(--muted);grid-template-columns:110px 1fr;align-items:baseline;gap:12px;font-size:14px;display:grid}.landing #p-labels .row.on{color:var(--cream)}.landing .beat{z-index:5;opacity:0;max-width:560px;position:absolute;bottom:22vh;left:32px}.landing .beat h2{margin:0;font-size:clamp(36px,4.5vw,64px);line-height:1.05}.landing .beat p{color:var(--muted);max-width:46ch;margin:10px 0 0;font-size:16px}.landing .beat .grid{grid-template-columns:1fr;gap:8px;margin-top:16px;display:grid}.landing .beat .row{color:var(--muted);grid-template-columns:110px 1fr;align-items:baseline;gap:12px;font-size:14px;display:grid}.landing .beat .after,.landing #p-labels .after{margin-top:16px;font-size:15px}.landing .heading{z-index:5;opacity:0;position:absolute;bottom:14vh;left:32px}.landing .heading h2{margin:0;font-size:clamp(40px,5vw,72px);line-height:1.05}.landing .lbl{z-index:6;font-family:var(--font-dm-mono), Menlo, monospace;letter-spacing:.06em;color:#f5f3efe6;opacity:0;white-space:nowrap;pointer-events:none;will-change:transform;align-items:center;gap:8px;font-size:11px;display:flex;position:absolute;top:0;left:0;transform:translateY(-50%)}.landing .lbl i{background:var(--bg);border:1px solid #f5f3efcc;border-radius:999px;width:8px;height:8px}.landing .lbl u{background:#f5f3ef66;width:56px;height:1px;text-decoration:none}.landing section{z-index:2;position:relative}.landing .card{background:var(--surface);box-sizing:border-box;border:1px solid #f5f3ef0f;border-top-color:var(--edge);border-radius:24px;padding:36px}.landing #moves{padding:16vh 0 10vh}.landing #moves .head{justify-content:space-between;align-items:flex-end;margin-bottom:40px;display:flex}.landing #moves h2{margin:0;font-size:clamp(36px,4vw,56px);line-height:1.05}.landing .stack{position:relative}.landing .stack .card{transform-origin:50% 0;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px;height:62vh;min-height:440px;margin-bottom:8vh;display:grid;position:sticky;top:96px}.landing .stack .card .n{font-family:var(--font-dm-mono), Menlo, monospace;letter-spacing:.08em;color:var(--subtle);font-size:11px}.landing .stack .card .t{margin:10px 0 14px;font-size:clamp(30px,3.2vw,44px);line-height:1.1}.landing .stack .card .d{color:var(--muted);max-width:40ch;font-size:17px;font-family:var(--font-inter), "Neue Montreal", Helvetica, Arial, sans-serif}.landing .stack .card .frame{background:var(--surface2);border:1px solid #f5f3ef14;border-radius:14px;position:relative;overflow:hidden}.landing .stack .card .frame:after{content:"";background:linear-gradient(to bottom, transparent, var(--surface));pointer-events:none;height:40%;position:absolute;inset:auto 0 0}.landing .stack .card .frame .dots{background-image:radial-gradient(#f5f3ef1f 1px,#0000 1.5px);background-size:22px 22px;position:absolute;inset:0}.landing .stack .card .frame img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.landing .stack .card .frame .cap{font-family:var(--font-dm-mono), Menlo, monospace;color:var(--subtle);z-index:1;font-size:10px;position:absolute;bottom:12px;left:14px}.landing .stack .card .foot{align-items:center;gap:8px;margin-top:auto;display:flex}.landing #close{padding:14vh 0 12vh}.landing #close .grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:64px;display:grid}.landing #close h2{margin:0 0 14px;font-size:clamp(36px,4vw,56px);line-height:1.05}.landing #close p{max-width:48ch;margin:0 0 20px;font-size:18px}.landing #close .about{color:var(--muted);font-size:14px}.landing #close .about .k{font-family:var(--font-dm-mono), Menlo, monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--subtle);margin-bottom:10px;font-size:11px;display:block}.landing .fade{will-change:opacity}.landing footer{border-top:1px solid var(--hair);font-family:var(--font-dm-mono), Menlo, monospace;color:var(--subtle);justify-content:space-between;align-items:center;padding:24px 32px 32px;font-size:11px;display:flex}@media (max-width:860px){.landing .entry{top:14vh;left:20px;right:20px}.landing .note,.landing .lbl{display:none}.landing .panel,.landing .beat,.landing .heading{max-width:none;width:auto!important;left:20px!important;right:20px!important}.landing #p-chart{grid-template-columns:1fr;gap:16px}.landing #chart{height:180px}.landing .stack .card{grid-template-columns:1fr;height:auto;min-height:0}.landing .stack .card .frame{height:200px}.landing #close .grid{grid-template-columns:1fr;gap:32px}.landing .top{padding:16px 20px}}html.static .landing #journey{height:auto;overflow:visible}html.static .landing #journey .scene,html.static .landing #poster{height:70vh;position:relative}html.static .landing .scrim,html.static .landing .lbl,html.static .landing .note{display:none}html.static .landing .entry,html.static .landing .panel,html.static .landing .beat,html.static .landing .heading{max-width:720px;padding:8vh 32px 0;position:static;opacity:1!important;visibility:visible!important;transform:none!important}html.static .landing #p-chart{display:block}html.static .landing .stack .card{position:static;filter:none!important;opacity:1!important;transform:none!important}html.static .landing .fade{opacity:1!important;filter:none!important}@media (prefers-reduced-motion:reduce){.landing .btn,.landing #poster{transition:none}}
