.landing{--orange-soft:#F9DEC7;--radius-sign:14px;--maxw:1120px;background:var(--paper);color:var(--ink);font-family:var(--font-source-serif),Georgia,serif;font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh}.landing a{color:var(--blue)}.landing img,.landing svg{display:block;max-width:100%}.landing .mono{font-family:var(--font-overpass-mono),monospace}.landing .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}.landing header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.landing .nav{display:flex;align-items:center;justify-content:space-between;height:68px}.landing .wordmark{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}.landing .wordmark svg{width:30px;height:30px}.landing .wordmark span{font-family:var(--font-overpass),sans-serif;font-weight:900;font-size:1.25rem;letter-spacing:-.02em}.landing .wordmark b{color:var(--sign)}.landing .nav-links{display:flex;align-items:center;gap:28px}.landing .nav-links a:not(.btn){font-family:var(--font-overpass),sans-serif;font-weight:600;font-size:.92rem;text-decoration:none;color:var(--ink-soft)}.landing .nav-links a:not(.btn):hover{color:var(--ink)}.landing .btn{display:inline-block;font-family:var(--font-overpass),sans-serif;font-weight:800;font-size:.98rem;padding:14px 26px 12px;border-radius:10px;text-decoration:none;cursor:pointer;border:none;letter-spacing:.01em}.landing .btn-sign{background:var(--sign);color:var(--white);box-shadow:inset 0 0 0 2px var(--sign),inset 0 0 0 3.5px rgba(253,253,249,.85)}.landing .btn-sign:hover{background:var(--sign-deep);box-shadow:inset 0 0 0 2px var(--sign-deep),inset 0 0 0 3.5px rgba(253,253,249,.9)}.landing .btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}.landing .btn-ghost:hover{background:var(--ink);color:var(--paper)}.landing .btn-small{padding:10px 18px 8px;font-size:.85rem}.landing .hero{padding:84px 0 40px;position:relative;overflow:hidden}.landing .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;grid-gap:56px;gap:56px;align-items:center}.landing .eyebrow{font-family:var(--font-overpass),sans-serif;font-size:.95rem;font-weight:700;color:var(--ink-soft);display:flex;align-items:center;gap:10px;margin-bottom:22px}.landing .eyebrow:before{content:"";width:26px;height:2px;background:var(--orange)}.landing h1{font-family:var(--font-overpass),sans-serif;font-weight:900;font-size:clamp(2.5rem,5.2vw,4.1rem);line-height:1.04;letter-spacing:-.025em;margin-bottom:24px}.landing h1 .town{color:var(--sign);background-image:linear-gradient(var(--orange),var(--orange));background-repeat:no-repeat;background-size:100% 5px;background-position:0 96%}.landing .hero p.lede{font-size:1.16rem;color:var(--ink-soft);max-width:34rem;margin-bottom:32px}.landing .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.landing .hero-note{font-family:var(--font-overpass),sans-serif;font-size:.88rem;font-weight:600;color:var(--ink-soft);margin-top:18px}.landing .demo-stage{position:relative}.landing .map-card{background:var(--paper-deep);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 24px 60px -30px rgba(28,42,33,.35)}.landing .map-card svg{width:100%;height:auto}.landing .sign-panel{position:relative;margin:-58px 22px 0;background:var(--sign);border-radius:var(--radius-sign);box-shadow:inset 0 0 0 3px var(--sign),inset 0 0 0 6px rgba(253,253,249,.9),0 20px 44px -18px rgba(8,79,43,.55);padding:26px 26px 24px;color:var(--white)}.landing .sign-title{font-family:var(--font-overpass),sans-serif;font-weight:800;font-size:1.06rem;letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px}.landing .sign-title .rt{font-family:var(--font-overpass-mono),monospace;font-weight:700;font-size:.7rem;letter-spacing:.12em;background:rgba(253,253,249,.16);padding:4px 9px 3px;border-radius:6px;white-space:nowrap}.landing .checker{display:flex;gap:10px}.landing .checker input{flex:1 1;min-width:0;font-family:var(--font-overpass),sans-serif;font-weight:600;font-size:1rem;padding:14px 16px 12px;border-radius:9px;border:none;background:var(--white);color:var(--ink)}.landing .checker input::placeholder{color:#8b968c;font-weight:400}.landing .checker button{font-family:var(--font-overpass),sans-serif;font-weight:800;font-size:.95rem;background:var(--orange);color:var(--white);border:none;border-radius:9px;padding:0 22px;cursor:pointer;white-space:nowrap}.landing .checker button:hover{background:#d55e0a}.landing .suggest{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.landing .suggest button{font-family:var(--font-overpass-mono),monospace;font-size:.72rem;font-weight:600;letter-spacing:.04em;background:transparent;color:rgba(253,253,249,.85);border:1px dashed rgba(253,253,249,.5);border-radius:99px;padding:6px 12px 5px;cursor:pointer}.landing .suggest button:hover{background:rgba(253,253,249,.14);border-style:solid}.landing .result{margin-top:16px;border-radius:10px;padding:16px 18px 14px;display:none;font-family:var(--font-overpass),sans-serif}.landing .result.show{display:block;animation:pop .28s cubic-bezier(.2,1.4,.4,1)}@keyframes pop{0%{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}.landing .result .r-head{font-weight:800;font-size:1.02rem;display:flex;align-items:center;gap:9px;margin-bottom:4px}.landing .result .r-sub{font-size:.88rem;line-height:1.45;opacity:.92}.landing .result .r-cta{margin-top:12px}.landing .result.in{background:var(--white);color:var(--ink)}.landing .result.in .r-head{color:var(--sign)}.landing .result.edge{background:#FFF4E8;color:#6B3A05}.landing .result.out{background:rgba(253,253,249,.12);color:var(--white);box-shadow:inset 0 0 0 1px rgba(253,253,249,.35)}.landing .badge-dot{width:10px;height:10px;border-radius:50%;flex:none}.landing .plate{position:absolute;top:14px;left:14px;z-index:2;font-family:var(--font-overpass-mono),monospace;font-size:.68rem;font-weight:700;letter-spacing:.1em;background:var(--white);border:1px solid var(--line);border-radius:7px;padding:6px 10px 5px;color:var(--ink-soft)}.landing .route{position:relative;padding:40px 0 0}.landing .route:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:0;border-left:3px dashed var(--line);transform:translateX(-50%)}.landing section.stop{position:relative;padding:96px 0}.landing .marker{position:relative;z-index:2;width:max-content;margin:0 auto 52px;display:flex;align-items:center;gap:12px;font-family:var(--font-overpass-mono),monospace;font-weight:700;font-size:.74rem;letter-spacing:.16em;color:var(--ink-soft);text-transform:uppercase;background:var(--paper);padding:8px 18px 7px;border:1.5px solid var(--ink);border-radius:99px}.landing .marker i{width:11px;height:11px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 3px var(--paper),0 0 0 4.5px var(--orange);font-style:normal;flex:none}.landing .stop-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:64px;gap:64px;align-items:center}.landing .hero-grid>*,.landing .price-grid>*,.landing .stop-grid>*{min-width:0}.landing h2{font-family:var(--font-overpass),sans-serif;font-weight:900;font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.1;letter-spacing:-.02em;margin-bottom:20px}.landing h2 em{font-style:normal;color:var(--sign)}.landing .stop p{color:var(--ink-soft);max-width:32rem}.landing .stop p+p{margin-top:16px}.landing .kicker{font-family:var(--font-overpass),sans-serif;font-weight:700;font-size:.95rem;color:var(--orange);margin-bottom:12px}.landing .tickets{display:grid;grid-gap:26px;gap:26px}.landing .ticket{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:20px 22px 18px;position:relative;box-shadow:0 10px 24px -18px rgba(28,42,33,.4)}.landing .ticket:before{content:attr(data-tag);font-family:var(--font-overpass-mono),monospace;font-size:.64rem;font-weight:700;letter-spacing:.12em;color:var(--white);background:var(--blue);padding:4px 9px 3px;border-radius:5px;position:absolute;top:-11px;left:18px}.landing .ticket h3{font-family:var(--font-overpass),sans-serif;font-weight:800;font-size:1.02rem;margin:4px 0 6px}.landing .ticket p{font-size:.94rem;max-width:none}.landing .fig{background:var(--paper-deep);border:1px solid var(--line);border-radius:18px;overflow:hidden;position:relative}.landing .fig figcaption{font-family:var(--font-overpass-mono),monospace;font-size:.7rem;letter-spacing:.08em;color:var(--ink-soft);padding:12px 16px;border-top:1px dashed var(--line);display:flex;gap:18px;flex-wrap:wrap}.landing .fig figcaption span{display:flex;align-items:center;gap:7px}.landing .swatch{width:12px;height:12px;border-radius:3px;flex:none}.landing .legend-list{list-style:none;margin-top:26px;display:grid;grid-gap:14px;gap:14px}.landing .legend-list li{display:flex;gap:14px;align-items:flex-start;font-size:.98rem;color:var(--ink-soft)}.landing .legend-list li strong{color:var(--ink);font-family:var(--font-overpass),sans-serif;font-weight:700}.landing .legend-list .ll-mark{flex:none;width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-family:var(--font-overpass-mono),monospace;font-weight:700;font-size:.8rem;background:var(--white);border:1.5px solid var(--ink);margin-top:2px}.landing .quote{max-width:760px;margin:0 auto;text-align:center;position:relative;z-index:2;background:var(--paper);padding:20px 0}.landing .quote blockquote{font-size:clamp(1.25rem,2.4vw,1.65rem);line-height:1.5;font-style:italic;color:var(--ink)}.landing .quote blockquote:before{content:"“";color:var(--orange);font-size:1.4em}.landing .quote blockquote:after{content:"”";color:var(--orange);font-size:1.4em}.landing .quote cite{display:block;margin-top:18px;font-style:normal;font-family:var(--font-overpass),sans-serif;font-weight:700;font-size:.92rem;color:var(--ink-soft)}.landing .platforms{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.landing .platforms span{font-family:var(--font-overpass),sans-serif;font-weight:700;font-size:.82rem;background:var(--white);border:1px solid var(--line);border-radius:99px;padding:8px 16px 6px;color:var(--ink-soft)}.landing .embed-line{margin-top:22px;background:var(--white);border:1px dashed var(--ink);border-radius:10px;padding:14px 18px;font-family:var(--font-overpass-mono),monospace;font-size:.8rem;color:var(--ink-soft);overflow-x:auto;white-space:nowrap}.landing .embed-line b{color:var(--sign);font-weight:700}.landing .pricing{padding:96px 0;position:relative}.landing .pricing-head{text-align:center;max-width:620px;margin:0 auto 56px}.landing .pricing-head p{color:var(--ink-soft);margin-top:14px}.landing .price-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:22px;gap:22px;align-items:stretch}.landing .plan{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:32px 30px;display:flex;flex-direction:column}.landing .plan.featured{background:var(--sign);color:var(--white);box-shadow:inset 0 0 0 3px var(--sign),inset 0 0 0 6px rgba(253,253,249,.9),0 26px 54px -22px rgba(8,79,43,.55);border:none}.landing .plan h3{font-weight:800;font-size:1.15rem;display:flex;justify-content:space-between;align-items:center}.landing .plan .who,.landing .plan h3{font-family:var(--font-overpass),sans-serif}.landing .plan .who{font-weight:600;font-size:.86rem;opacity:.8;margin-top:4px}.landing .plan .price{font-family:var(--font-overpass),sans-serif;font-weight:900;font-size:2.7rem;letter-spacing:-.03em;margin:20px 0 2px}.landing .plan .price small{font-size:1rem;font-weight:600;letter-spacing:0}.landing .plan ul{list-style:none;margin:22px 0 28px;display:grid;grid-gap:11px;gap:11px;flex:1 1}.landing .plan li{font-family:var(--font-overpass),sans-serif;font-size:.93rem;font-weight:600;display:flex;gap:10px;align-items:flex-start}.landing .plan li:before{content:"✓";color:var(--orange);font-weight:900;flex:none}.landing .plan.featured li:before{color:#FFC48A}.landing .plan .btn{text-align:center}.landing .plan.featured .btn{background:var(--white);color:var(--sign);box-shadow:none}.landing .plan.featured .btn:hover{background:#f0efe4}.landing .flat-note{text-align:center;margin-top:34px;font-family:var(--font-overpass),sans-serif;font-weight:600;font-size:.92rem;color:var(--ink-soft)}.landing .flat-note b{color:var(--sign)}.landing .faq{max-width:760px;margin:0 auto;padding:0 0 96px}.landing .faq h2{text-align:center;margin-bottom:40px}.landing .faq details{background:var(--white);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden}.landing .faq summary{cursor:pointer;list-style:none;font-family:var(--font-overpass),sans-serif;font-weight:700;font-size:1rem;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:14px}.landing .faq summary::-webkit-details-marker{display:none}.landing .faq summary:after{content:"+";font-weight:900;color:var(--orange);font-size:1.3rem;line-height:1}.landing .faq details[open] summary:after{content:"–"}.landing .faq .a{padding:0 22px 20px;color:var(--ink-soft);font-size:.96rem}.landing .final{padding:20px 0 110px}.landing .final-sign{background:var(--sign);border-radius:20px;box-shadow:inset 0 0 0 3px var(--sign),inset 0 0 0 7px rgba(253,253,249,.9);color:var(--white);text-align:center;padding:76px 32px;position:relative;overflow:hidden}.landing .final-sign h2{color:var(--white);margin-bottom:14px}.landing .final-sign p{color:rgba(253,253,249,.85);max-width:33rem;margin:0 auto 32px}.landing .final-sign .btn-sign{background:var(--orange);box-shadow:none}.landing .final-sign .btn-sign:hover{background:#d55e0a}.landing .final-sign .exit{position:absolute;top:22px;right:26px;font-family:var(--font-overpass-mono),monospace;font-size:.68rem;font-weight:700;letter-spacing:.14em;border:1.5px solid rgba(253,253,249,.6);border-radius:7px;padding:6px 11px 5px;color:rgba(253,253,249,.85)}.landing footer{border-top:1px solid var(--line);padding:34px 0 44px;font-family:var(--font-overpass),sans-serif;font-weight:600;font-size:.85rem;color:var(--ink-soft)}.landing .foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}.landing .foot a{color:var(--ink-soft);text-decoration:none}.landing .foot a:hover{color:var(--ink)}.landing .prose{max-width:760px;margin:0 auto;padding:64px 0 96px}.landing .prose h1{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:10px}.landing .prose .updated{font-family:var(--font-overpass-mono),monospace;font-size:.72rem;font-weight:700;letter-spacing:.12em;color:var(--ink-soft);text-transform:uppercase;margin-bottom:34px}.landing .prose h2{font-size:1.35rem;margin:38px 0 12px}.landing .prose li,.landing .prose p{color:var(--ink-soft);font-size:1rem}.landing .prose ul{margin:12px 0 12px 22px;display:grid;grid-gap:8px;gap:8px}.landing .prose p+p{margin-top:12px}@media (max-width:960px){.landing .hero-grid{grid-template-columns:1fr;gap:40px}.landing .stop-grid{grid-template-columns:1fr;gap:36px}.landing .stop-grid.flip .fig-col{order:-1}.landing .price-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto}.landing .route:before{display:none}.landing .marker{margin:0 0 40px}.landing .nav-links{gap:18px}.landing .nav-links a:not(.btn):not(.keep){display:none}}@media (max-width:640px){.landing .wrap{padding:0 20px}.landing .nav{height:60px}.landing .wordmark span{font-size:1.1rem}.landing .wordmark svg{width:26px;height:26px}.landing .nav-links a.keep{display:none}.landing .nav .btn-small{padding:9px 14px 7px;font-size:.8rem}.landing .hero{padding:44px 0 28px}.landing h1{font-size:clamp(2.05rem,8.6vw,2.6rem)}.landing .hero p.lede{font-size:1.05rem}.landing .hero-ctas{flex-direction:column;align-items:stretch}.landing .hero-ctas .btn{text-align:center}.landing .hero-note{font-size:.64rem;text-align:center}.landing .plate{font-size:.6rem;padding:5px 8px 4px;top:10px;left:10px}.landing .sign-panel{margin:-34px 10px 0;padding:20px 16px 18px}.landing .sign-title{align-items:flex-start;gap:8px;font-size:1rem}.landing .checker,.landing .sign-title{flex-direction:column}.landing .checker input{padding:15px 16px 13px}.landing .checker button{padding:14px}.landing .suggest button{padding:9px 14px 8px;font-size:.74rem}.landing section.stop{padding:60px 0}.landing .marker{font-size:.66rem;padding:8px 14px 7px;letter-spacing:.12em}.landing h2{font-size:clamp(1.55rem,6.4vw,2rem)}.landing .kicker{font-size:.72rem}.landing .legend-list li{font-size:.92rem;gap:12px}.landing .legend-list .ll-mark{width:30px;height:30px;border-radius:8px}.landing .ticket{padding:18px 18px 16px}.landing .fig figcaption{gap:8px 14px;font-size:.6rem;padding:10px 14px}.landing .quote blockquote{font-size:1.15rem}.landing .quote cite{font-size:.66rem}.landing .embed-line{font-size:.72rem;padding:12px 14px;white-space:normal;overflow-wrap:anywhere}.landing .platforms span{font-size:.76rem;padding:7px 13px 5px}.landing .pricing{padding:68px 0}.landing .pricing-head{margin-bottom:40px}.landing .plan{padding:26px 22px}.landing .plan .price{font-size:2.3rem}.landing .flat-note{font-size:.64rem;line-height:1.9}.landing .faq{padding-bottom:68px}.landing .faq summary{padding:16px 18px;font-size:.95rem}.landing .faq .a{padding:0 18px 18px;font-size:.92rem}.landing .final{padding-bottom:80px}.landing .final-sign{padding:48px 22px 52px}.landing .final-sign .exit{position:static;display:inline-block;margin-bottom:20px}.landing .foot{flex-direction:column;gap:10px;text-align:center;justify-content:center}}@media (max-width:380px){.landing h1{font-size:1.9rem}.landing .suggest{gap:6px}}@media (prefers-reduced-motion:reduce){.landing *{animation:none!important;transition:none!important}}