@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&display=swap";@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--color-key: #37ab2f;--color-key-dark: #2f9027;--color-key-darker: #24711f;--color-key-bg: #f0faf0;--color-ink: #090512;--color-ink-90: #383838;--color-ink-80: #4a4a4a;--color-ink-70: #666666;--color-ink-60: #747474;--color-ink-50: #8b8b8b;--color-ink-40: #a8a8a8;--color-ink-30: #bababa;--color-surface: #ffffff;--color-surface-1: #fdfdfd;--color-surface-5: #f6f6f6;--color-surface-10: #e8e8e8;--color-surface-subtle: #f0f0f0;--color-border: #e8e8e8;--color-border-strong: #cbcbcb;--color-live: #37ab2f;--color-live-dark: #2f9027;--color-tram: #FF6F00;--color-bus: #1B4E8C;--color-walk: #6b6b6b;--color-error: #d22020;--color-error-bg: #fff5f5;--color-warning: #f56d00;--color-warning-bg: #fff8f0;--color-schedule: #f5c402;--color-focus: rgba(55, 171, 47, .5);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 999px;--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--text-2xs: 10px;--text-xs: 11px;--text-sm: 13px;--text-base: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--shadow-card: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-card-hover: 0 4px 16px rgba(0,0,0,.12), 0 2px 6px rgba(0,0,0,.06);--shadow-panel: 2px 0 20px rgba(0,0,0,.1);--shadow-popover: 0 8px 32px rgba(0,0,0,.14);--panel-width: 380px;--transition-fast: .12s ease;--transition-base: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden;font-family:var(--font-sans);background:#f0f0f0;color:var(--color-ink-90);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.25}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:2px}button{font-family:var(--font-sans);cursor:pointer}input{font-family:var(--font-sans)}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 37%,#f0f0f0 63%);background-size:800px 100%;animation:shimmer 1.4s ease infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.gm-style{position:absolute;top:0;right:0;bottom:0;left:0}.landing{--lp-bg: #0b0f0d;--lp-panel: #12716622;--lp-ink: #f4f5f3;--lp-ink-muted: #93a69a;--lp-line: #ffffff1a;--lp-green: #37ab2f;--lp-orange: #ff6f00;--lp-blue: #4d8fd6;min-height:100dvh;width:100%;background:radial-gradient(ellipse 900px 500px at 50% -10%,#16241c 0%,var(--lp-bg) 60%);color:var(--lp-ink);font-family:Plus Jakarta Sans,system-ui,sans-serif;display:flex;flex-direction:column;align-items:center;box-sizing:border-box;padding:28px 20px 32px}.landing *,.landing *:before,.landing *:after{box-sizing:border-box}.lp-topbar{width:100%;max-width:640px;display:flex;align-items:center;justify-content:space-between;margin-bottom:clamp(32px,8vh,72px)}.lp-wordmark{font-weight:800;font-size:15px;letter-spacing:.02em;color:var(--lp-ink)}.lp-wordmark span{color:var(--lp-green)}.lp-langtoggle{display:flex;gap:2px;background:#ffffff0d;border:1px solid var(--lp-line);border-radius:999px;padding:3px}.lp-langtoggle button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--lp-ink-muted);font-family:inherit;font-size:12px;font-weight:600;letter-spacing:.04em;padding:5px 12px;border-radius:999px;cursor:pointer;transition:color .15s ease,background .15s ease}.lp-langtoggle button[aria-pressed=true]{background:var(--lp-ink);color:#0b0f0d}.lp-langtoggle button:not([aria-pressed=true]):hover{color:var(--lp-ink)}.lp-langtoggle button:focus-visible{outline:2px solid var(--lp-green);outline-offset:2px}.lp-main{position:relative;width:100%;max-width:560px;display:flex;flex-direction:column;align-items:center;text-align:center}.lp-lines{position:absolute;top:-8px;left:50%;transform:translate(-50%);width:min(720px,150%);height:190px;z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,black 60%,transparent 96%);mask-image:linear-gradient(to bottom,black 60%,transparent 96%)}.lp-line{stroke-linecap:round}.lp-line-rail{stroke:var(--lp-blue);stroke-width:3;opacity:.55}.lp-line-bus-a{stroke:var(--lp-green);stroke-width:2;stroke-dasharray:1 9;opacity:.55}.lp-line-bus-b{stroke:var(--lp-orange);stroke-width:2;stroke-dasharray:1 9;opacity:.5}.lp-tick-rail{fill:var(--lp-blue);opacity:.7}.lp-tick-bus-a{fill:var(--lp-green);opacity:.7}.lp-tick-bus-b{fill:var(--lp-orange);opacity:.65}.lp-board{position:relative;z-index:1}.lp-board{width:100%;max-width:420px;background:linear-gradient(180deg,#0f1613,#0a0e0c);border:1px solid #ffffff14;border-radius:10px;padding:18px 20px;font-family:IBM Plex Mono,ui-monospace,monospace;text-align:left;box-shadow:0 30px 60px -30px #00000090,inset 0 1px #ffffff0a;opacity:0;animation:lp-board-in .6s ease-out .1s forwards}@media(prefers-reduced-motion:reduce){.lp-board{opacity:1;animation:none}}@keyframes lp-board-in{0%{opacity:0;filter:brightness(.4)}40%{opacity:1;filter:brightness(1.6)}55%{filter:brightness(.7)}to{opacity:1;filter:brightness(1)}}.lp-board-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:5px 0;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase}.lp-board-row+.lp-board-row{border-top:1px dashed #ffffff1a}.lp-board-route{color:var(--lp-ink);font-weight:500}.lp-board-label{color:var(--lp-ink-muted)}.lp-board-value{color:var(--lp-orange);font-weight:500;text-shadow:0 0 12px #ff6f0066}.lp-board-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lp-orange);box-shadow:0 0 8px 1px #ff6f0099;margin-left:8px;animation:lp-pulse 1.8s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.lp-board-dot{animation:none}}@keyframes lp-pulse{0%,to{opacity:1}50%{opacity:.35}}.lp-headline{font-size:clamp(28px,5vw,42px);font-weight:800;line-height:1.15;letter-spacing:-.01em;margin:28px 0 12px;max-width:15ch}.lp-subhead{font-size:clamp(16px,2.4vw,19px);font-weight:600;color:var(--lp-ink-muted);margin:0 0 18px}.lp-body{font-size:15px;line-height:1.65;color:var(--lp-ink-muted);max-width:42ch;margin:0 0 40px}.lp-features-label{font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--lp-ink-muted);margin-bottom:16px}.lp-features{width:100%;max-width:560px;display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:44px;text-align:left}.lp-feature{background:#ffffff08;border:1px solid var(--lp-line);border-radius:12px;padding:18px}.lp-feature-icon{color:var(--lp-green);margin-bottom:10px}.lp-feature-title{font-size:14.5px;font-weight:700;color:var(--lp-ink);margin-bottom:6px}.lp-feature-body{font-size:13px;line-height:1.55;color:var(--lp-ink-muted);margin:0}@media(max-width:560px){.lp-features{grid-template-columns:1fr}}.lp-progress-label{font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--lp-ink-muted);margin-bottom:14px}.lp-route-line{position:relative;width:100%;max-width:420px;display:flex;justify-content:space-between;margin-bottom:12px}.lp-route-line:before{content:"";position:absolute;top:5px;left:5px;right:5px;height:2px;background:var(--lp-line)}.lp-route-stage{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;flex:1}.lp-route-node{width:12px;height:12px;border-radius:50%;border:2px solid var(--lp-line);background:var(--lp-bg)}.lp-route-stage[data-state=done] .lp-route-node{background:var(--lp-green);border-color:var(--lp-green)}.lp-route-stage[data-state=current] .lp-route-node{background:var(--lp-orange);border-color:var(--lp-orange);box-shadow:0 0 0 4px #ff6f0022}.lp-route-stage-label{font-size:12px;color:var(--lp-ink-muted);text-align:center;max-width:12ch}.lp-route-stage[data-state=current] .lp-route-stage-label{color:var(--lp-ink);font-weight:600}.lp-signup{width:100%;max-width:420px;margin-top:12px;display:flex;flex-direction:column;align-items:center}.lp-signup-form{width:100%}.lp-signup-label{display:block;font-size:13px;font-weight:600;color:var(--lp-ink);margin-bottom:10px}.lp-signup-row{display:flex;gap:8px}.lp-signup-row input{flex:1;min-width:0;background:#ffffff0d;border:1px solid var(--lp-line);border-radius:8px;padding:11px 14px;font-family:inherit;font-size:14px;color:var(--lp-ink)}.lp-signup-row input::placeholder{color:var(--lp-ink-muted)}.lp-signup-row input:focus-visible{outline:2px solid var(--lp-green);outline-offset:1px}.lp-signup-row input[aria-invalid=true]{border-color:var(--lp-orange)}.lp-signup-row button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:8px;padding:11px 18px;background:var(--lp-green);color:#06170a;font-family:inherit;font-size:14px;font-weight:700;white-space:nowrap;cursor:pointer;transition:filter .15s ease,opacity .15s ease}.lp-signup-row button:hover:not(:disabled){filter:brightness(1.1)}.lp-signup-row button:disabled{opacity:.6;cursor:default}.lp-signup-row button:focus-visible{outline:2px solid var(--lp-ink);outline-offset:2px}.lp-signup-error{margin:10px 0 0;font-size:12.5px;color:var(--lp-orange);text-align:left}.lp-signup-success{font-size:14px;font-weight:600;color:var(--lp-green);background:#37ab2f14;border:1px solid #37ab2f3d;border-radius:8px;padding:12px 16px;width:100%}.lp-signup-count{margin:14px 0 0;font-size:12.5px;color:var(--lp-ink-muted)}@media(max-width:460px){.lp-signup-row{flex-direction:column}}.lp-footer{margin-top:auto;padding-top:clamp(40px,10vh,96px)}.lp-footer a{color:var(--lp-ink-muted);font-size:13px;text-decoration:none;border-bottom:1px solid transparent;transition:color .15s ease,border-color .15s ease}.lp-footer a:hover{color:var(--lp-ink);border-color:var(--lp-ink-muted)}.lp-footer a:focus-visible{outline:2px solid var(--lp-green);outline-offset:3px;border-radius:2px}@media(max-width:420px){.lp-route-stage-label{font-size:10.5px;max-width:9ch}.lp-board-row{font-size:11px}}
