:root{--canvas:#f4f4f0;--paper:#fff;--ink:#000;--muted:#5f5e59;--pink:#ff90e8;--yellow:#ffc900;--blue:#4d8cff;--shadow:3px 3px 0 var(--ink);--radius:8px;--display:"Syne", system-ui, sans-serif;--sans:"IBM Plex Sans", system-ui, sans-serif;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-press:90ms;--dur-1:.15s;--dur-2:.25s;--dur-3:.4s;--dur-4:.7s;--cat-cafe:#ffc900;--cat-restaurant:#ff90e8;--cat-bakery:#ff8a3d;--cat-bar:#a78bfa;--cat-park:#43b65f;--cat-cultural:#4d8cff;--tint-diet:#fff3c4;--tint-community:#ffe0f8;--tint-access:#dce8ff;--tint-atmos:#e4f5e8;--ink-2:#2b2b28;--line:#e4e2d9}.cat-bg-cafe{background:var(--cat-cafe)}.cat-bg-restaurant{background:var(--cat-restaurant)}.cat-bg-bakery{background:var(--cat-bakery)}.cat-bg-bar{background:var(--cat-bar)}.cat-bg-park{background:var(--cat-park)}.cat-bg-cultural{background:var(--cat-cultural)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0}#root{min-height:100%}body{font-family:var(--sans);color:var(--ink);background:var(--canvas)}button,a{font-family:inherit}button:focus-visible,a:focus-visible,.leaflet-marker-icon:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.leaflet-marker-icon:focus-visible{outline-color:var(--blue);border-radius:50%}@media (prefers-reduced-motion:reduce){.btn-solid,.chip-link,.city-card,.lang-btn{transition:none!important}}.lang-toggle{border:2px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--paper);display:flex;overflow:hidden}.lang-btn{cursor:pointer;transition:background-color var(--dur-1) var(--ease-out);background:0 0;border:0;padding:.35rem .6rem;font-weight:600}.lang-btn:not([aria-pressed=true]):hover{background:color-mix(in srgb, var(--pink) 35%, var(--paper))}.lang-btn+.lang-btn{border-left:2px solid var(--ink)}.lang-btn[aria-pressed=true]{background:var(--pink)}.city-switch-stack{flex-direction:column;gap:.35rem;display:flex}.city-switch-row{align-items:stretch;gap:.4rem;min-width:0;display:flex}.city-switch-label{border:2px solid var(--ink);border-radius:var(--radius);min-width:4.4rem;box-shadow:var(--shadow);background:var(--yellow);font-family:var(--display);letter-spacing:.03em;color:inherit;cursor:default;flex:none;justify-content:center;align-items:center;padding:0 .4rem;font-size:.62rem;font-weight:800;display:flex}button.city-switch-label{cursor:pointer}.city-switch-row-eu .city-switch-label{background:var(--pink)}.city-switch{border:2px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--paper);flex-wrap:wrap;max-width:36rem;display:flex;overflow:hidden}.city-btn{letter-spacing:.02em;cursor:pointer;background:0 0;border:0;padding:.28rem .38rem;font-size:.68rem;font-weight:700}.city-btn+.city-btn{border-left:2px solid var(--ink)}.city-btn[aria-pressed=true]{background:var(--yellow)}.chip-row{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.chip-cluster{display:contents}.chip,.clear-btn,.noise-tick{border:2px solid var(--ink);background:var(--paper);box-shadow:var(--shadow);border-radius:var(--radius);cursor:pointer;padding:.3rem .55rem;font-size:.78rem;font-weight:500}.chip[aria-pressed=true]{background:var(--pink)}.chip.is-empty{opacity:.38;box-shadow:none;cursor:default}.chip.is-empty[aria-pressed=true]{opacity:1;cursor:pointer}.chip-sub{padding:.22rem .45rem;font-size:.7rem}.noise-tick[aria-pressed=true]{background:var(--yellow)}.landing,.suggest{max-width:920px;min-height:100dvh;margin:0 auto;padding:1rem 1rem 2.5rem}.landing{max-width:1120px;padding-inline:clamp(1rem,4vw,2rem)}.mod-page{max-width:1100px}.landing-top{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.landing-wordmark{color:inherit;font-family:var(--display);letter-spacing:-.04em;margin:0;font-size:1.15rem;font-weight:800;text-decoration:none}.landing-hero{margin:2.4rem 0 3rem;position:relative}.landing-top-actions{align-items:center;gap:.6rem;display:flex}.landing-brand{color:inherit;text-decoration:none}.brand-word{font-family:var(--display);letter-spacing:-.04em;font-size:1.25rem;font-weight:800}.landing .landing-hero{align-items:center;gap:2.2rem;margin:clamp(1.8rem,5vw,3.6rem) 0 clamp(3rem,7vw,5rem);display:grid}@media (width>=900px){.landing .landing-hero{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:3rem}}.landing .landing-hero h1{letter-spacing:-.05em;text-wrap:balance;max-width:16ch;font-size:clamp(2.4rem,5.2vw,4.1rem);line-height:.98}.landing .landing-lead{max-width:40ch;font-size:clamp(1.05rem,1.8vw,1.25rem);font-weight:400;line-height:1.45}.landing-proof{color:var(--muted);margin:1.1rem 0 0;font-size:.85rem}.landing-proof strong{color:var(--ink);font-weight:600}.landing-try{flex-wrap:wrap;align-items:center;gap:.5rem .6rem;margin-top:1.4rem;display:flex}.landing-try-label{font-size:.85rem;font-weight:600}.landing ul.chip-row{margin:0;padding:0;list-style:none}.chip-link{color:inherit;transition:transform var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out), background-color var(--dur-1) var(--ease-out);align-items:center;gap:.35rem;text-decoration:none;display:inline-flex}a.chip-link:hover{background:var(--pink);box-shadow:5px 5px 0 var(--ink);transform:translate(-2px,-2px)}a.chip-link:active{box-shadow:1px 1px 0 var(--ink);transition-duration:var(--dur-press);transform:translate(2px,2px)scale(.97)}.chip-link.chip-noise:hover{background:var(--yellow)}.chip-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.68rem;font-weight:600}a.chip-link:hover .chip-count{color:var(--ink)}.landing-section-lead{max-width:60ch;color:var(--muted);margin:-.3rem 0 1rem;line-height:1.45}.landing-group-title{font-family:var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .55rem;font-size:.78rem;font-weight:600}.landing-group-title span{color:var(--ink)}.landing-steps,.landing-trust{gap:.9rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}@media (width>=760px){.landing-steps,.landing-trust{grid-template-columns:repeat(3,1fr)}}.landing-step,.landing-trust li{background:var(--paper);border:2px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1rem 1.1rem}.landing-step h3,.landing-trust h3{font-family:var(--display);letter-spacing:-.03em;margin:.55rem 0 .3rem;font-size:1.1rem;font-weight:800}.landing-trust h3{margin-top:0}.landing-step p,.landing-trust p{margin:0;font-size:.92rem;line-height:1.45}.landing-step-num{background:var(--yellow);border:2px solid var(--ink);width:2rem;height:2rem;font-family:var(--display);border-radius:50%;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.landing-step:nth-child(2) .landing-step-num{background:var(--pink)}.landing-step:nth-child(3) .landing-step-num{background:var(--blue)}.landing-final{background:var(--pink);border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);border-radius:14px;margin:3rem 0 0;padding:clamp(1.6rem,5vw,2.8rem) clamp(1.2rem,4vw,2.4rem)}.landing-final h2{font-family:var(--display);letter-spacing:-.05em;max-width:18ch;margin:0 0 .5rem;font-size:clamp(1.8rem,4.5vw,2.8rem);font-weight:800;line-height:1}.landing-final p{margin:0 0 1.3rem;font-size:1.05rem;font-weight:500}.landing-hero h1,.suggest-sheet h1{font-family:var(--display);letter-spacing:-.07em;margin:0;font-weight:800;line-height:.82}.landing-hero h1{font-size:clamp(4.4rem,18vw,9.5rem)}.suggest-sheet h1{font-size:clamp(2.4rem,8vw,4rem)}.landing-lead{max-width:22ch;margin:1.1rem 0 0;font-size:clamp(1.15rem,2.4vw,1.45rem);font-weight:500;line-height:1.3}.suggest-lead{max-width:36ch;margin-bottom:1.4rem}.landing-cta{flex-wrap:wrap;gap:.55rem;margin-top:1.4rem;display:flex}.btn-solid{border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:var(--radius);color:inherit;background:var(--paper);cursor:pointer;justify-content:center;align-items:center;padding:.65rem .95rem;font-size:.95rem;font-weight:700;text-decoration:none;display:inline-flex}.btn-solid:not(:disabled):hover{box-shadow:5px 5px 0 var(--ink);transform:translate(-2px,-2px)}.btn-solid:not(:disabled):active{box-shadow:1px 1px 0 var(--ink);transition-duration:var(--dur-press);transform:translate(2px,2px)scale(.97)}.btn-solid{transition:transform var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out), background-color var(--dur-1) var(--ease-out), outline-offset var(--dur-1) var(--ease-out);gap:.4rem}.btn-solid>span[aria-hidden=true]{transition:transform var(--dur-2) var(--ease-spring);display:inline-block}.btn-solid:not(:disabled):hover>span[aria-hidden=true]{transform:translate(3px)}.btn-large{padding:.85rem 1.25rem;font-size:1.02rem}.btn-small{padding:.35rem .7rem;font-size:.85rem}.btn-paper{background:var(--paper)}.btn-solid:disabled{opacity:.55;cursor:wait}.btn-yellow{background:var(--yellow)}.btn-pink{background:var(--pink)}.btn-ghost{background:var(--paper)}.landing-block{margin:2.4rem 0}.landing .landing-block{margin:clamp(2.6rem,6vw,4rem) 0}.landing .landing-cities{grid-template-columns:repeat(auto-fill,minmax(11.5rem,1fr))}.landing .city-card{flex-direction:row;align-items:center;gap:.65rem}.landing .city-emblem{flex:none;width:3.1rem}.landing .city-card-info{flex-direction:column;align-items:flex-start;gap:.05rem;min-width:0}.landing .city-card-name{font-size:.98rem;font-weight:700}.landing .city-card:hover{background:var(--yellow)}.landing-kicker{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 .7rem;font-size:.78rem;font-weight:600}.landing-block h2,.landing-fiche h2{font-family:var(--display);letter-spacing:-.04em;margin:0 0 .8rem;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:800}.landing-cities{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.landing-city-group{margin-top:1.15rem}.landing-city-group:first-of-type{margin-top:.85rem}.landing-block .landing-city-group h2{font-family:var(--display);letter-spacing:-.03em;margin:0 0 .5rem;font-size:1.05rem;font-weight:800}.city-card{color:inherit;background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:var(--radius);transition:transform var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out), background-color var(--dur-1) var(--ease-out);flex-direction:column;gap:.4rem;padding:.5rem;text-decoration:none;display:flex}.city-card:hover{box-shadow:5px 5px 0 var(--ink);transform:translate(-2px,-2px)}.city-card:active{box-shadow:1px 1px 0 var(--ink);transition-duration:var(--dur-press);transform:translate(2px,2px)scale(.98)}.city-emblem{aspect-ratio:1;border:2px solid var(--ink);background:#fff;border-radius:6px;width:100%;display:block}.city-card-info{align-items:center;gap:.4rem;display:flex}.city-card-code{background:var(--yellow);border:2px solid var(--ink);min-width:2.1rem;height:1.6rem;font-family:var(--display);border-radius:6px;justify-content:center;align-items:center;padding:0 .25rem;font-size:.7rem;font-weight:800;display:inline-flex}.city-card-name{font-size:.9rem;font-weight:600}.city-card-count{color:var(--muted);font-size:.75rem}.landing-categories{flex-direction:column;gap:1.25rem;margin-top:.75rem;display:flex}.landing-category{flex-direction:column;gap:.45rem;display:flex}.landing-category-title{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0;font-size:.85rem;font-weight:700}.landing-chips{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.landing-chip-cluster{display:contents}.landing-chips li,.landing-chip-cluster>span{border:2px solid var(--ink);background:var(--paper);box-shadow:var(--shadow);border-radius:var(--radius);padding:.3rem .55rem;font-size:.78rem;font-weight:500}.landing-chip-sub{padding:.22rem .45rem;font-size:.7rem}.landing-chip-noise{background:var(--yellow)!important}.landing-fiche{background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:var(--radius);padding:1.1rem 1rem 1.2rem}.landing-fiches{gap:.85rem;margin:2.4rem 0;display:grid}@media (width>=720px){.landing-fiches{grid-template-columns:1fr 1fr;align-items:stretch}}.landing-fiches .landing-fiche{flex-direction:column;display:flex}.landing-fiches .landing-fiche .btn-solid{align-self:flex-start;margin-top:auto}.landing-fiche-yellow{background:var(--yellow)}.topic-switch{flex-wrap:wrap;gap:.4rem;display:flex}.topic-btn{border:2px solid var(--ink);background:var(--paper);box-shadow:var(--shadow);border-radius:var(--radius);cursor:pointer;padding:.4rem .6rem;font-size:.82rem;font-weight:700}.topic-btn[aria-pressed=true]{background:var(--yellow)}.landing-fiche p{max-width:38ch;margin:0 0 1rem}.site-foot{color:var(--muted);margin:2.5rem 0 0;font-size:.75rem}.site-credit{color:var(--ink);margin:.35rem 0 .6rem;font-size:.8rem;font-weight:500}.site-credit a{color:var(--ink);text-underline-offset:2px;font-weight:700;text-decoration:underline}.legal-nav{flex-wrap:wrap;gap:.45rem .85rem;margin-top:.45rem;display:flex}.legal-nav a[aria-current=page]{color:var(--ink);text-decoration:none}.legal-sheet{max-width:42rem;margin-top:1.6rem}.legal-sheet h1{font-family:var(--display);letter-spacing:-.06em;margin:0 0 1rem;font-size:clamp(2.2rem,7vw,3.4rem);font-weight:800;line-height:.92}.legal-sheet h2{font-family:var(--display);letter-spacing:-.03em;margin:1.4rem 0 .45rem;font-size:1.15rem;font-weight:800}.legal-sheet p,.legal-sheet li{margin:0 0 .7rem;line-height:1.45}.legal-sheet ul{margin:0 0 .8rem;padding-left:1.15rem}.legal-page .legal-sheet a{color:inherit;font-weight:600}.legal-contact{margin:1.2rem 0 0;font-size:.8rem}.landing-foot{color:var(--muted);margin:2.5rem 0 0;font-size:.75rem}.suggest-sheet{margin-top:1.6rem}.suggest-categories{flex-direction:column;gap:.85rem;width:100%;margin-top:.35rem;display:flex}.suggest-category-group{flex-direction:column;gap:.35rem;display:flex}.suggest-category-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.72rem;font-weight:700}.suggest-field{border:0;flex-direction:column;gap:.4rem;min-inline-size:0;margin:0 0 1rem;padding:0;display:flex}.suggest-field>span,.suggest-field>legend{font-size:.82rem;font-weight:600}.suggest-field input,.suggest-field textarea{font:inherit;color:inherit;background:var(--paper);border:2px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:.55rem .7rem}.suggest-field textarea{resize:vertical}.suggest-error{background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:var(--radius);margin:0 0 .8rem;padding:.55rem .7rem;font-weight:600}.suggest-preview{max-width:340px;margin:1.1rem 0 .4rem}.suggest-preview .place-card{padding-right:.8rem}@media (width<=640px){.landing-cities,.landing .landing-cities{grid-template-columns:1fr 1fr}.landing .city-emblem{width:2.4rem}.landing .city-card{gap:.5rem;padding:.4rem}.landing-top-cta{display:none}.landing-cta .btn-solid{flex:12rem}}.mod-tabs{flex-wrap:wrap;gap:.4rem;margin:0 0 1rem;display:flex}.mod-tab{border:2px solid var(--ink);background:var(--paper);box-shadow:var(--shadow);border-radius:var(--radius);cursor:pointer;padding:.35rem .7rem;font-weight:700}.mod-tab[aria-pressed=true]{background:var(--yellow)}.mod-toolbar{margin:0 0 .75rem}.mod-empty{color:var(--muted);margin:0}.mod-table-wrap{border:2px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--paper);overflow-x:auto}.mod-table{border-collapse:collapse;width:100%;font-size:.8rem}.mod-table th,.mod-table td{text-align:left;vertical-align:top;border-bottom:1px solid color-mix(in srgb, var(--ink) 12%, transparent);padding:.45rem .55rem}.mod-table th{text-transform:uppercase;letter-spacing:.04em;background:var(--canvas);font-size:.68rem}.mod-table tr:last-child td{border-bottom:0}.mod-table .mod-note{margin-top:.2rem;display:block}.mod-actions{white-space:nowrap}.mod-actions .btn-solid{margin:.1rem .15rem .1rem 0}.mod-card{background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:var(--radius);margin:0 0 .75rem;padding:.85rem .9rem 1rem}.mod-card h2{font-family:var(--display);letter-spacing:-.03em;margin:.15rem 0 .35rem;font-size:1.15rem}.mod-card p{margin:0 0 .4rem}.mod-status{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:700}.mod-city{color:var(--muted);font-size:.8rem;font-weight:600}.mod-note{color:var(--muted);font-size:.85rem}@keyframes lp-rise{0%{opacity:0;transform:translateY(14px)}}@keyframes lp-fade{0%{opacity:0}}@keyframes lp-frame-in{0%{opacity:0;transform:translateY(16px)scale(.98)}}.landing-hero-copy>*{animation:lp-rise var(--dur-3) var(--ease-out) both}.landing-hero-copy>:first-child{animation-name:lp-fade}.landing-hero-copy>:nth-child(2){animation-delay:50ms}.landing-hero-copy>:nth-child(3){animation-delay:.11s}.landing-hero-copy>:nth-child(4){animation-delay:.17s}.landing-hero-copy>:nth-child(5){animation-delay:.23s}.landing-hero-copy>:nth-child(6){animation-delay:.27s}[data-reveal]{transition:opacity var(--dur-3) var(--ease-out), transform var(--dur-3) var(--ease-out)}.reveal-pending{opacity:0;transform:translateY(16px)}.city-emblem{transition:transform var(--dur-2) var(--ease-spring)}.city-card:hover .city-emblem{transform:rotate(-4deg)scale(1.05)}.landing-brand{transition:transform var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out)}.landing-brand:hover{box-shadow:5px 5px 0 var(--ink);transform:translate(-2px,-2px)}.landing a:focus-visible,.landing button:focus-visible{animation:lp-focus var(--dur-1) var(--ease-out)}@keyframes lp-focus{0%{outline-offset:6px}}.site-foot a{text-underline-offset:2px;transition:text-underline-offset var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out)}.site-foot a:hover{text-underline-offset:4px;color:var(--ink)}@media (prefers-reduced-motion:reduce){.landing *,.landing :before,.landing :after{transition:none!important;animation:none!important}.reveal-pending{opacity:1;transform:none}}.demo{--pin-s:.86;width:100%;max-width:460px;animation:lp-frame-in var(--dur-3) var(--ease-out) 80ms both;justify-self:center;margin:0;position:relative}.demo-stage{aspect-ratio:4/5;border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);color:var(--ink);font-family:var(--sans);-webkit-user-select:none;user-select:none;isolation:isolate;background:#f5f4ef;border-radius:14px;font-size:13px;line-height:1.25;position:relative;overflow:hidden;container-type:inline-size}.demo-map{transition:opacity var(--dur-3) var(--ease-out);position:absolute;inset:0}.demo-stage:not([data-city=paris]) .demo-map{opacity:.45}.demo-svg{fill:none;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%;position:absolute;inset:0}.demo-seine{stroke:#c9dff0;stroke-width:7.5px}.demo-district{stroke:#9b9a92;stroke-width:1.2px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.demo-street,.demo-avenue{stroke:#e2e0d8;stroke-width:3px;vector-effect:non-scaling-stroke}.demo-avenue{stroke:#dcd9cf;stroke-width:4.5px}.demo-avenue.is-major{stroke-width:6px}.demo-line{stroke-width:3px;vector-effect:non-scaling-stroke;opacity:.85;transition:opacity var(--dur-3) var(--ease-out), stroke-width var(--dur-3) var(--ease-out)}.demo-stage:not([data-route="0"]) .demo-line:not(.is-route){opacity:.14}.demo-stage:not([data-route="0"]) .demo-line.is-route{stroke-width:5.5px;opacity:1}.demo-stop{fill:var(--paper);stroke:#3d3d39;stroke-width:1.5px;vector-effect:non-scaling-stroke;transition:opacity var(--dur-3) var(--ease-out)}.demo-stage:not([data-route="0"]) .demo-stop{opacity:.25}.demo-station{fill:var(--paper);stroke:var(--ink);stroke-width:2.5px;vector-effect:non-scaling-stroke;opacity:0;transform-box:fill-box;transform-origin:50%;transition:opacity var(--dur-2) var(--ease-out), transform var(--dur-3) var(--ease-spring);transform:scale(.4)}.demo-stage:not([data-route="0"]) .demo-station{opacity:1;transform:none}.demo-walk{stroke:var(--ink);stroke-width:1.1px;stroke-dasharray:.01 2.1}.demo-walk-reveal{stroke:#fff;stroke-width:4px;stroke-dasharray:1;stroke-dashoffset:1px}.demo-stage[data-route="2"] .demo-walk-reveal{stroke-dashoffset:0;transition:stroke-dashoffset .9s var(--ease-in-out)}.demo-pin,.demo-pin-target{width:44px;height:48px;margin:-40px 0 0 -22px;position:absolute}.demo-pin{transform-origin:22px 40px;transform:scale(var(--pin-s));transition:transform var(--dur-3) var(--ease-spring), opacity var(--dur-2) var(--ease-out);transition-delay:calc(var(--n,0) * 22ms)}.demo-pin.is-out,.demo-cluster.is-out{opacity:0;transition-timing-function:var(--ease-out);transform:scale(.2)}.demo-pin-target{width:28px;height:28px;margin:calc(-21px * var(--pin-s) - 14px) 0 0 -14px}.demo .map-pin-inner{transform-origin:22px 39px;width:44px;height:48px;filter:drop-shadow(2px 2px 0 var(--ink));transition:transform var(--dur-3) var(--ease-spring);position:absolute;top:0;left:0}.demo .map-pin-body{border:2px solid var(--ink);width:30px;height:30px;color:var(--ink);border-radius:50% 50% 50% 3px;justify-content:center;align-items:center;display:flex;position:absolute;top:4px;left:7px;transform:rotate(-45deg)}.demo .map-pin-glyph{display:flex;transform:rotate(45deg)}.demo-pin.is-active{z-index:2}.demo-stage:not([data-route="0"]) .demo-pin:not(.is-out,.is-active),.demo-stage:not([data-route="0"]) .demo-cluster:not(.is-out){opacity:.35;transition-delay:0s}.demo-pin.is-active .map-pin-inner{transform:scale(1.38)}.demo-pin.is-active:after{content:"";z-index:-1;background:#0000004d;border-radius:50%;width:18px;height:7px;position:absolute;top:36px;left:13px}.demo-cluster{width:0;height:0;transition:transform var(--dur-3) var(--ease-spring), opacity var(--dur-2) var(--ease-out);transition-delay:calc(var(--n,0) * 22ms);justify-content:center;align-items:center;display:flex;position:absolute}.demo-cluster span{background:var(--paper);border:2.5px solid var(--ink);box-shadow:2px 2px 0 var(--ink);font-variant-numeric:tabular-nums;scale:var(--pin-s);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:15px;font-weight:700;line-height:1;display:flex}.demo-station-label,.demo-walk-label{background:var(--paper);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);white-space:nowrap;opacity:0;transition:opacity var(--dur-2) var(--ease-out), transform var(--dur-3) var(--ease-spring);border-radius:999px;align-items:center;gap:4px;padding:2px 7px 2px 3px;font-size:12px;font-weight:700;display:inline-flex;position:absolute}.demo-station-label{transform:translate(calc(-100% - 8px),-50%)scale(.9)}.demo-stage:not([data-route="0"]) .demo-station-label{opacity:1;transform:translate(calc(-100% - 12px),-50%)}.demo-walk-label{background:var(--yellow);padding:2px 8px 2px 5px;transform:translate(-50%,6px)scale(.8)}.demo-stage[data-route="2"] .demo-walk-label{opacity:1;transition-delay:.5s;transform:translate(-50%,10px)}.demo-mode{background:var(--ink);width:18px;height:18px;color:var(--paper);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.demo-ui{z-index:3;flex-direction:column;gap:8px;display:flex;position:absolute;inset:8px 8px auto}.demo-bar{background:var(--paper);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:12px;flex-direction:column;gap:6px;padding:6px;display:flex}.demo-row{align-items:center;gap:6px;min-width:0;display:flex}.demo-row-filters{border-top:1.5px solid var(--line);padding-top:6px}.demo-brand{font-family:var(--display);letter-spacing:-.04em;flex:none;padding:0 3px 1px;font-size:16px;font-weight:800}.demo-picker{border:2px solid var(--ink);border-radius:9px;align-items:center;gap:5px;height:30px;padding:0 6px 0 9px;font-size:14px;font-weight:700;display:inline-flex;overflow:hidden}.demo-roll{animation:demo-roll var(--dur-2) var(--ease-out);align-items:center;gap:6px;display:inline-flex}@keyframes demo-roll{0%{opacity:0;transform:translateY(70%)}}.demo-picker-count{background:var(--canvas);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 6px;font-size:12px;font-weight:700}.demo-segment{border:2px solid var(--ink);border-radius:9px;margin-left:auto;display:inline-flex;overflow:hidden}.demo-segment>span{height:26px;transition:background-color var(--dur-2) var(--ease-out);align-items:center;gap:4px;padding:0 8px;font-size:12.5px;font-weight:600;display:inline-flex}.demo-segment>span+span{border-left:2px solid var(--ink)}.demo-segment>.is-on{background:var(--yellow);font-weight:700}.demo-chip{border:2px solid var(--ink);background:var(--paper);transition:background-color var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-spring);border-radius:999px;flex:none;padding:3px 9px;font-size:12.5px;font-weight:600}.demo-chip.is-on{background:var(--pink);font-weight:700}.demo-count{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;margin-left:auto;padding-right:2px;font-size:12px;font-weight:600}.demo-popover{background:var(--paper);border:2px solid var(--ink);width:11.5rem;box-shadow:3px 3px 0 var(--ink);opacity:0;transition:opacity var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out);border-radius:10px;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:44px;left:50px;transform:translateY(-6px)}.demo-popover.is-open{opacity:1;transform:none}.demo-option{transition:background-color var(--dur-1) var(--ease-out);border:1.5px solid #0000;border-radius:7px;justify-content:space-between;align-items:center;padding:5px 8px;font-size:13px;font-weight:600;display:flex}.demo-option.is-on{background:color-mix(in srgb, var(--yellow) 35%, var(--paper));border-color:var(--ink)}.demo-list{background:var(--paper);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);opacity:0;transition:opacity var(--dur-2) var(--ease-out), transform var(--dur-3) var(--ease-out);border-radius:12px;overflow:hidden;transform:translateY(14px)}.demo-stage[data-view=list] .demo-list{opacity:1;transform:none}.demo-list-head{border-bottom:2px solid var(--ink);background:#fffbea;flex-direction:column;gap:1px;padding:8px 12px;display:flex}.demo-list-head strong{font-family:var(--display);letter-spacing:-.02em;font-size:16px;font-weight:800}.demo-list-head span,.demo-list-meta{color:var(--muted);font-size:12px;font-weight:600}.demo-list ul{margin:0;padding:0;list-style:none}.demo-list li{align-items:flex-start;gap:10px;padding:8px 12px;display:flex}.demo-list li+li{border-top:1.5px solid var(--line)}.demo-key{border:2px solid var(--ink);border-radius:8px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.demo-list-body{flex-direction:column;gap:1px;min-width:0;display:flex}.demo-list-body strong{font-size:14px}.demo-list-tags{flex-wrap:wrap;gap:4px;margin-top:3px;display:flex}.demo-list-tags span{border:1.5px solid var(--ink);background:#faf9f5;border-radius:6px;padding:0 6px;font-size:12px;font-weight:600}.demo-card{z-index:4;background:var(--paper);border:2px solid var(--ink);max-height:45%;box-shadow:4px 4px 0 var(--ink);transition:transform var(--dur-4) var(--ease-out);border-radius:12px;flex-direction:column;gap:6px;padding:10px 12px 11px;display:flex;position:absolute;bottom:8px;left:8px;right:8px;transform:translateY(calc(100% + 16px))}.demo-stage[data-card=open] .demo-card{transition-timing-function:var(--ease-spring);transition-delay:.15s;transform:none}.demo-card-head{align-items:center;gap:8px;display:flex}.demo-badge{border:2px solid var(--ink);border-radius:999px;align-items:center;gap:4px;padding:1px 8px 1px 6px;font-size:12px;font-weight:700;display:inline-flex}.demo-card-district{color:var(--muted);font-size:12px;font-weight:600}.demo-card-name{font-family:var(--display);letter-spacing:-.02em;margin:0;font-size:21px;font-weight:800;line-height:1.1}.demo-tags{flex-wrap:wrap;gap:5px;display:flex}.demo-tag{border:1.5px solid var(--ink);background:var(--tint-diet);border-radius:7px;align-items:center;gap:3px;padding:2px 7px 2px 5px;font-size:12.5px;font-weight:600;display:inline-flex}.demo-tag.tone-accessibility{background:var(--tint-access)}.demo-tag.tone-community{background:var(--tint-community)}.demo-tag.tone-atmosphere{background:var(--tint-atmos)}.demo-transit{border-top:1.5px solid var(--line);flex-direction:column;gap:4px;padding-top:7px;display:flex}.demo-transit-title{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:5px;font-size:11.5px;font-weight:700;display:inline-flex}.demo-transit-row{flex-wrap:wrap;align-items:center;gap:4px 7px;font-size:13px;display:flex}.demo-line-badge{border:1.5px solid var(--ink);font-variant-numeric:tabular-nums;min-width:21px;height:21px;transition:box-shadow var(--dur-3) var(--ease-out);border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:12px;font-weight:700;display:inline-flex}.demo-stage:not([data-route="0"]) .demo-line-badge{box-shadow:0 0 0 2px var(--paper), 0 0 0 4px var(--ink)}.demo-walk-text{color:var(--muted);white-space:nowrap;align-items:center;gap:3px;font-size:12.5px;display:inline-flex}.demo-cursor{z-index:6;border:2.5px solid var(--ink);width:24px;height:24px;box-shadow:2px 2px 0 var(--ink);pointer-events:none;transform:translate(var(--cx), var(--cy));transition:transform .52s var(--ease-in-out), opacity var(--dur-2) var(--ease-out);background:#ffffff80;border-radius:50%;margin:-12px 0 0 -12px;position:absolute;top:0;left:0}.demo-cursor.is-idle{opacity:0}.demo-tap{border:2.5px solid var(--ink);opacity:0;animation:demo-tap .52s var(--ease-out) .12s;border-radius:50%;position:absolute;inset:-2.5px}@keyframes demo-tap{0%{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(2)}}.demo-cursor:has(.demo-tap){animation:demo-press .3s var(--ease-out) 60ms}@keyframes demo-press{50%{scale:.78}}.demo-stage.is-paused *,.demo-dot-fill.is-paused{animation-play-state:paused!important}.demo-controls{justify-content:space-between;align-items:center;gap:10px;min-height:30px;margin-top:16px;display:flex}.demo-caption{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:14px;font-weight:700;overflow:hidden}.demo-caption-num{vertical-align:middle;border:2px solid var(--ink);background:var(--yellow);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;margin-right:2px;font-size:12px;display:inline-flex}.demo-dots{flex:none;align-items:center;gap:2px;display:flex}.demo-dot,.demo-toggle{width:30px;height:30px;color:var(--ink);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.demo-dot:before{content:"";border:2px solid var(--ink);background:var(--paper);border-radius:999px;height:8px;position:absolute;top:11px;left:4px;right:4px}.demo-dot.is-done:before,.demo-dot.is-now:before{background:var(--ink)}.demo-dot.is-now:before{background:var(--paper)}.demo-dot-fill{background:var(--ink);transform-origin:0;border-radius:999px;height:4px;animation:linear both demo-fill;position:absolute;top:13px;left:6px;right:6px}@keyframes demo-fill{0%{transform:scaleX(0)}}.demo-dot:hover:before{background:var(--yellow)}.demo-dot:focus-visible,.demo-toggle:focus-visible{outline:3px solid var(--ink);outline-offset:-1px;border-radius:8px}.demo-toggle{border:2px solid var(--ink);background:var(--paper);box-shadow:2px 2px 0 var(--ink);border-radius:8px;margin-left:4px}.demo-toggle:hover{background:var(--yellow)}@media (width<=480px){.demo-dot{width:26px}.demo-controls{gap:6px}}@container (width<=380px){.demo-chip[data-target=halal]{display:none}}@media (prefers-reduced-motion:reduce){.demo .demo-dot.is-now:before{background:var(--ink)}}
