:root{color-scheme:light;--brand-leaf: #75b62b;--brand-pink: #d75a99;--brand-pink-tint: #fbeaf3;--accent: #4e8217;--accent-hover: #3f6b11;--accent-deep: #122b04;--accent-tint: #effae6;--bg: #f4f7ef;--bg-accent: #e9f1de;--surface: #ffffff;--ink: #1c2413;--ink-soft: #47523c;--muted: #68715c;--border: #e4e9db;--border-strong: #c9d3ba;--danger: #9b2c2c;--danger-tint: #fdf2f2;--font-display: "Poppins", "Segoe UI", sans-serif;--font-body: "Inter", "Segoe UI", sans-serif;--radius-sm: .5rem;--radius-md: .9rem;--radius-lg: 1.25rem;--radius-pill: 999px;--radius-thumb: .9rem;--radius-sheet: 1.5rem;--shadow-xs: 0 1px 2px rgba(18, 43, 4, .06);--shadow-sm: 0 2px 8px rgba(18, 43, 4, .08);--shadow-md: 0 8px 24px rgba(18, 43, 4, .1);--shadow-soft: 0 -8px 28px rgba(18, 43, 4, .12);--transition-fast: .15s ease;--transition-med: .22s ease;--pad-x: 1.15rem;--app-max-width: 28rem}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:var(--font-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}#root{min-height:100vh}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.pwa{max-width:var(--app-max-width);margin:0 auto;padding:0 var(--pad-x) 3rem;background:var(--surface);min-height:100vh;box-shadow:0 0 0 1px color-mix(in srgb,var(--border) 80%,transparent)}@media(min-width:640px){body{padding:2.25rem 1.25rem 3rem;background:radial-gradient(60rem 30rem at 85% -10%,color-mix(in srgb,var(--brand-leaf) 9%,transparent),transparent 60%),radial-gradient(50rem 26rem at 0% 110%,color-mix(in srgb,var(--brand-pink) 5%,transparent),transparent 55%),var(--bg)}.pwa{--app-max-width: 30rem;min-height:calc(100vh - 5.25rem);border-radius:var(--radius-sheet);box-shadow:0 0 0 1px color-mix(in srgb,var(--border) 90%,transparent),var(--shadow-md);overflow:clip}}.brand{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 calc(-1 * var(--pad-x)) 1.25rem;padding:.9rem var(--pad-x);position:sticky;top:0;z-index:40;background:var(--surface);border-bottom:1px solid var(--border)}@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){.brand{background:color-mix(in srgb,var(--surface) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}}.brand-name{margin:0;font-family:var(--font-display);font-size:1.45rem;font-weight:600;letter-spacing:-.02em;color:var(--brand-leaf);line-height:1.1}button.brand-home,button.brand-home:hover:not(:disabled),button.brand-home:active:not(:disabled),button.brand-home:focus,button.brand-home:focus-visible{display:inline;margin:0;min-height:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--brand-leaf);font-weight:600;cursor:pointer;text-align:left;transform:none;-webkit-tap-highlight-color:transparent;box-shadow:none}button.brand-home:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.brand-name-accent{color:var(--brand-pink);font-weight:600}.brand-actions{display:flex;align-items:center;flex:0 0 auto}.pre-activation h1,.access-active h1,.access-error h1,.content-page h1,.content-blocked h1,.route-summary h1{margin:0 0 .6rem;font-family:var(--font-display);font-size:1.55rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);line-height:1.25}.pre-activation,.language-step,.route-picker,.route-summary,.poi-detail,.access-error{animation:pwa-fade-up .26s ease both}@keyframes pwa-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.warning,.hint,.access-loading p,.access-error p,.content-loading p,.content-blocked p,.coords{margin:0 0 1.1rem;color:var(--muted);font-size:.92rem;line-height:1.55}.route-meta{display:inline-flex;align-items:center;gap:.4rem;margin:0 0 1rem;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.route-meta:before{content:"";width:.45rem;height:.45rem;border-radius:var(--radius-pill);background:var(--brand-leaf)}.poi-route-meta{display:flex;margin:-.35rem 0 .85rem;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.content-page h2,.poi-list-heading{margin:1.6rem 0 .5rem;font-family:var(--font-display);font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:var(--ink)}.route-description{margin:0 0 .75rem;color:var(--ink-soft);font-size:.95rem;line-height:1.6}.pre-activation,.access-error{padding-top:1.25rem}.pre-activation:before,.access-error:before{content:"";display:block;width:3.25rem;height:3.25rem;margin:0 0 1rem;border-radius:var(--radius-pill);background-color:var(--accent-tint);background-position:center;background-repeat:no-repeat;background-size:1.6rem}.pre-activation:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234e8217' d='M8 5.14v13.72c0 .8.87 1.3 1.56.88l10.54-6.86a1.05 1.05 0 0 0 0-1.76L9.56 4.26A1.04 1.04 0 0 0 8 5.14z'/%3E%3C/svg%3E");background-position:calc(50% + 2px) center}.access-error:before{background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2368715c' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E")}.access-loading,.content-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:4.5rem 1rem 3rem;text-align:center}.access-loading:before,.content-loading:before{content:"";width:2.25rem;height:2.25rem;border-radius:var(--radius-pill);border:3px solid var(--border);border-top-color:var(--accent);animation:pwa-spin .8s linear infinite}@keyframes pwa-spin{to{transform:rotate(360deg)}}.poi-list{margin:0;padding:0;list-style:none}.poi-list-item{padding:0;border-bottom:1px solid var(--border)}.poi-list-item:last-child{border-bottom:none}.poi-list-row{display:flex;align-items:center;gap:.25rem;width:100%}.poi-list-button,.poi-list-static{display:flex;align-items:center;gap:.85rem;flex:1 1 auto;min-width:0;width:auto;padding:.85rem .15rem;border:none;border-radius:var(--radius-sm);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:opacity var(--transition-fast)}.poi-list-static{cursor:default}.poi-list-button:hover:not(:disabled){background:transparent;color:inherit}.poi-list-button:hover:not(:disabled) .poi-list-name{color:var(--accent)}.poi-list-button:active:not(:disabled){opacity:.85}.poi-list-order{flex:0 0 1.65rem;width:1.65rem;height:1.65rem;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-pill);background:var(--bg-accent);color:var(--accent);font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.poi-list-thumb{flex:0 0 4rem;width:4rem;margin:0}.poi-list-text{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;gap:.15rem}.poi-list-name{font-weight:600;font-size:.98rem;line-height:1.35;color:var(--ink);letter-spacing:-.01em;transition:color var(--transition-fast)}.poi-list-visited{flex:0 0 auto;color:var(--accent);font-size:.78rem;font-weight:600;white-space:nowrap;padding-right:.35rem}.poi-list-actions{display:flex;flex:0 0 auto;align-items:center;gap:.35rem;padding-left:.15rem}.poi-list-action{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin:0;padding:0;border:1.5px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--muted);text-decoration:none;cursor:pointer;box-sizing:border-box;transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.poi-list-action:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border-strong));background:color-mix(in srgb,var(--accent) 6%,transparent);color:var(--accent)}.poi-list-action:active{opacity:.85}.poi-list-maps{color:var(--ink-soft)}.poi-visited-toggle:not(.poi-visited-toggle--on):before{content:"";width:1.15rem;height:1.15rem;background-color:var(--border-strong);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.55 18.2 3.8 12.45l1.6-1.6 4.15 4.15L18.6 5.95l1.6 1.6z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.55 18.2 3.8 12.45l1.6-1.6 4.15 4.15L18.6 5.95l1.6 1.6z'/%3E%3C/svg%3E") center / contain no-repeat}.poi-visited-toggle--on{border-color:var(--accent);background:var(--accent);color:#fff}.poi-visited-toggle--on:hover{border-color:var(--accent-hover);background:var(--accent-hover);color:#fff}.poi-list-action-icon{display:block}.poi-list-item--visited{opacity:.78;background:color-mix(in srgb,var(--accent) 7%,transparent)}.poi-list-item--visited .poi-list-name{color:var(--ink-soft)}.poi-list-item--visited .poi-list-order{background:var(--accent-tint);color:var(--accent)}.poi-image{margin:0;overflow:hidden;background:var(--bg-accent)}.poi-image-photo{display:block;width:100%;height:100%;aspect-ratio:1;object-fit:cover}.poi-list-thumb .poi-image-photo,.poi-list-thumb .poi-image-fallback{aspect-ratio:1;height:4rem;border-radius:var(--radius-thumb)}.poi-image-fallback{display:flex;align-items:center;justify-content:center;aspect-ratio:1;padding:.35rem;color:var(--muted);font-size:.65rem;font-weight:600;text-align:center;line-height:1.25;background:linear-gradient(145deg,var(--bg-accent) 0%,color-mix(in srgb,var(--brand-leaf) 14%,var(--bg)) 100%)}.poi-detail-image{margin:0 0 1rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.poi-detail-image .poi-image-photo,.poi-detail-image .poi-image-fallback{aspect-ratio:16 / 10;max-height:14rem;border-radius:var(--radius-lg)}.poi-image-attribution{margin:.4rem 0 0;color:var(--muted);font-size:.75rem;line-height:1.35}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.route-map{position:relative;isolation:isolate;z-index:1;width:100%;min-height:12.5rem;margin:0 0 1.25rem;overflow:visible;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-accent);box-shadow:var(--shadow-xs)}.route-map-canvas,.route-map .leaflet-container{width:100%;height:min(52vw,16.5rem);min-height:12.5rem;z-index:0;overflow:hidden;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.route-map .leaflet-control-attribution{display:block;max-width:calc(100% - .5rem);font-size:.65rem;line-height:1.3;color:var(--ink);background:#ffffffeb}.route-map .leaflet-control-zoom{border:none;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.route-map .leaflet-control-zoom a{width:2.75rem;height:2.75rem;line-height:2.75rem;font-size:1.15rem;font-weight:700;color:var(--ink);background:var(--surface);border:1px solid var(--border)}.route-map .leaflet-control-zoom a:hover,.route-map .leaflet-control-zoom a:focus-visible{color:var(--accent-hover);background:var(--accent-tint)}.route-map .leaflet-control-zoom a:focus-visible,.map-locate-button:focus-visible,.map-center-on-me:focus-visible,.poi-map-card-close:focus-visible,.mini-player-close:focus-visible,.poi-map-open-detail:focus-visible,.poi-map-card-actions .maps-cta:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.route-map .leaflet-div-icon,.route-map-marker-wrap{background:transparent;border:none}.route-map-marker{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font-size:.8rem;font-weight:700;pointer-events:none;border:2px solid #fff;box-shadow:0 1px 5px #122b0459}.route-map-marker--visited{background:var(--ink-soft);opacity:.72}.route-map-empty,.route-map-tiles-error{margin:0;padding:.85rem 1rem;color:var(--ink-soft);font-size:.95rem}.route-map-tiles-error{position:absolute;left:.5rem;right:.5rem;bottom:1.75rem;z-index:2;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.poi-map-card{position:relative;z-index:10;margin:-.75rem 0 1.25rem;padding:.9rem 1rem 1rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md)}.poi-map-card-header{position:relative;display:flex;align-items:flex-start;gap:.65rem;margin:0 0 .5rem;padding-right:2.75rem}.poi-map-card-order{flex:0 0 1.75rem;margin:0;width:1.75rem;height:1.75rem;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font-size:.85rem;font-weight:700;line-height:1.75rem;text-align:center}h2.poi-map-card-title{flex:1 1 auto;min-width:0;margin:.5rem 0;font-family:var(--font-display);font-size:1.05rem;font-weight:600;line-height:1.3}.poi-map-card:focus{outline:none}.poi-map-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.poi-map-card-close{position:absolute;top:0;right:0;z-index:1;width:auto;margin:0;min-width:2.75rem;min-height:2.75rem;padding:.15rem .45rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-soft);font-size:1.35rem;line-height:1;cursor:pointer}.poi-map-card-close:hover:not(:disabled){background:var(--bg);color:var(--ink)}.poi-map-card-description,.poi-map-card-distance{margin:0 0 .65rem;color:var(--ink-soft);font-size:.92rem;line-height:1.45}.poi-map-card-distance{font-weight:600;color:var(--ink)}.poi-map-card-actions{display:flex;flex-direction:column;gap:.5rem}.poi-map-card-actions .maps-cta{margin:0}.poi-map-open-detail{width:100%;min-height:2.75rem;padding:.7rem 1rem;border:0;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.poi-map-open-detail:hover:not(:disabled){background:var(--accent-hover)}.map-locate{padding:.7rem .85rem .85rem;background:var(--surface);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.map-locate-help{margin:0 0 .55rem;color:var(--muted);font-size:.82rem;line-height:1.45}.map-locate-actions{display:flex;flex-wrap:wrap;gap:.5rem}.map-locate-button,.map-center-on-me{min-width:2.75rem;min-height:2.75rem;padding:.45rem 1rem;border:1.5px solid var(--accent);border-radius:var(--radius-pill);background:var(--accent);color:#fff;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.map-locate-button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.map-center-on-me{background:var(--surface);color:var(--accent)}.map-center-on-me:hover:not(:disabled){background:var(--accent-tint);color:var(--accent-hover)}.map-geo-status,.map-approximate{margin:.55rem 0 0;color:var(--ink-soft);font-size:.85rem;line-height:1.45}.map-user-location-wrap{background:transparent;border:none}.map-user-location{display:block;width:14px;height:14px;border-radius:var(--radius-pill);background:#1976d2;border:2px solid #fff;box-shadow:0 0 0 6px #1976d240}.map-user-location--approximate{background:#1565c0}.poi-list-distance{display:block;margin-top:.2rem;color:var(--muted);font-size:.82rem}.poi-list-empty{margin:0;padding:.85rem 1rem;color:var(--danger);font-size:.95rem;line-height:1.5;background:var(--danger-tint);border:1px solid color-mix(in srgb,var(--danger) 18%,var(--border));border-radius:var(--radius-md)}.poi-detail{margin-top:.15rem}.poi-detail-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.55rem .65rem;margin:0 0 .85rem;min-height:2.5rem}.route-progress{margin:0;padding:.3rem .7rem;color:var(--accent-deep);background:var(--bg-accent);border-radius:var(--radius-pill);font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap}.route-end{margin:0 0 1rem;padding:.75rem 1rem;color:var(--accent);background:var(--accent-tint);border-radius:var(--radius-md);font-size:.92rem;font-weight:600;line-height:1.5}.poi-detail-header h1,.poi-detail h1{margin:0;font-family:var(--font-display);font-size:1.25rem;font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.25;text-align:center;overflow-wrap:anywhere}.poi-detail-description{margin:0 0 1rem;color:var(--ink-soft);font-size:.92rem;line-height:1.55}.poi-back{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;margin:0;padding:0;background:transparent;color:var(--accent);font-weight:600;font-size:1.15rem;text-decoration:none;border:none;border-radius:var(--radius-sm);cursor:pointer;flex:0 0 auto}.poi-back-chevron{font-size:1.2rem;line-height:1}.poi-back:hover:not(:disabled){background:var(--accent-tint);color:var(--accent-hover)}.audio-unavailable,.location-unavailable{margin:0 0 1rem;padding:.65rem .9rem;color:var(--muted);font-size:.92rem;line-height:1.5;background:var(--bg);border:1px dashed var(--border-strong);border-radius:var(--radius-md)}.maps-cta{margin:0 0 .85rem}.maps-cta--ghost{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;width:100%;min-height:2.75rem;padding:.55rem 1rem;border:1.5px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;font-size:.95rem;text-decoration:none;box-sizing:border-box;transition:border-color var(--transition-fast),background var(--transition-fast)}.maps-cta--ghost:hover{background:var(--accent-tint);border-color:color-mix(in srgb,var(--accent) 45%,var(--border-strong));color:var(--ink)}.maps-cta-icon{flex:0 0 auto;color:var(--accent)}.poi-navigator{display:grid;grid-template-columns:1fr auto 1.25fr;gap:.45rem;margin-top:.35rem}.poi-nav-btn{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;width:100%;min-height:2.85rem;padding:.65rem .7rem;border-radius:var(--radius-pill);font-weight:600;font-size:.9rem;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.poi-nav-btn--prev{background:var(--surface);color:var(--ink);border:1.5px solid var(--border);box-shadow:var(--shadow-xs)}.poi-nav-btn--prev:hover:not(:disabled){background:var(--bg);color:var(--ink);border-color:var(--border-strong)}.poi-nav-btn--list{min-width:5.25rem;padding-left:.85rem;padding-right:.85rem;background:var(--surface);color:var(--accent);border:1.5px solid color-mix(in srgb,var(--accent) 45%,var(--border-strong));font-weight:600}.poi-nav-btn--list:hover:not(:disabled){background:var(--accent-tint);color:var(--accent-hover);border-color:color-mix(in srgb,var(--accent) 60%,var(--border-strong))}.poi-nav-btn--next{background:var(--accent);color:#fff;border:1.5px solid var(--accent);box-shadow:var(--shadow-xs)}.poi-nav-btn--next:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.poi-nav-btn:disabled{opacity:.4}.poi-nav-chevron{font-size:1.05rem;line-height:1}.poi{margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border)}.audio-player{margin:.85rem 0 1rem;padding:.75rem .85rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.audio-player-row{display:flex;align-items:center;gap:.75rem}.audio-controls{display:flex;flex:0 0 auto;justify-content:center;margin:0}.audio-player .circular-play{width:3.35rem;height:3.35rem}.audio-player .circular-play-icon{margin-left:.08rem}.audio-player .circular-play-icon svg{width:16px;height:16px}.audio-progress-block{flex:1 1 auto;min-width:0;margin:0}.audio-time-row{display:flex;justify-content:space-between;gap:.75rem;margin-top:.2rem;font-size:.75rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--muted)}.audio-seek-label{display:block;width:100%;margin:0}.audio-seek{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:1.5rem;margin:0;padding:0;background:transparent;cursor:pointer}.audio-seek::-webkit-slider-runnable-track{height:.28rem;background:var(--border);border-radius:var(--radius-pill)}.audio-seek::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:.85rem;height:.85rem;margin-top:-.28rem;border:2px solid var(--surface);border-radius:50%;background:var(--accent);box-shadow:var(--shadow-xs)}.audio-seek::-moz-range-track{height:.28rem;background:var(--border);border-radius:var(--radius-pill);border:none}.audio-seek::-moz-range-thumb{width:.85rem;height:.85rem;border:2px solid var(--surface);border-radius:50%;background:var(--accent);box-shadow:var(--shadow-xs)}.audio-seek:disabled{cursor:not-allowed;opacity:.5}.audio-duration-loading{font-style:normal;font-weight:500}.audio-error{margin-top:.75rem}.audio-error p{margin:0 0 .65rem;color:var(--danger);font-size:.9rem}.circular-play{position:relative;display:inline-flex;align-items:center;justify-content:center;width:4.5rem;height:4.5rem;padding:0;border:none;border-radius:var(--radius-pill);background:var(--accent);color:#fff;box-shadow:var(--shadow-sm);cursor:pointer;transition:background var(--transition-fast),box-shadow var(--transition-fast);flex:0 0 auto}.circular-play:hover:not(:disabled){background:var(--accent-hover);color:#fff;box-shadow:var(--shadow-md)}.circular-play:disabled{opacity:.55}.circular-play-ring{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.circular-play-track{stroke:color-mix(in srgb,#ffffff 28%,transparent)}.circular-play-progress{stroke:#fff;stroke-linecap:round;transition:stroke-dashoffset .15s linear}.circular-play-icon{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;margin-left:.1rem}.circular-play-icon svg{fill:currentColor}.content-page{padding-bottom:7.5rem}.mini-player{position:fixed;left:50%;bottom:0;z-index:30;width:min(var(--app-max-width),100%);transform:translate(-50%);display:flex;flex-direction:column;gap:.35rem;padding:.55rem 1.15rem calc(.95rem + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border);border-bottom:none;border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;box-shadow:var(--shadow-soft)}.mini-player--dismissing{pointer-events:none;animation:mini-player-dismiss .28s ease forwards}@keyframes mini-player-dismiss{to{transform:translate(-50%) translateY(110%);opacity:0}}@media(prefers-reduced-motion:reduce){.mini-player--dismissing{animation:none}}@media(min-width:640px){.mini-player{bottom:1rem;border-bottom:1px solid var(--border);border-radius:var(--radius-sheet);width:min(calc(var(--app-max-width) - 2rem),calc(100% - 2rem))}}.mini-player-top{display:flex;align-items:center;justify-content:flex-end;min-height:1.75rem;margin:-.15rem 0 .1rem}.mini-player-close{display:inline-flex;align-items:center;justify-content:center;margin:0;min-width:2.75rem;min-height:2.75rem;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-soft);font-size:1.45rem;line-height:1;cursor:pointer}.mini-player-close:hover:not(:disabled){background:var(--bg);color:var(--ink)}.mini-player-progress{width:100%;height:.28rem;border-radius:var(--radius-pill);background:var(--border);overflow:hidden}.mini-player-progress-fill{display:block;height:100%;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--brand-leaf),var(--accent));transition:width .3s linear}.mini-player-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.mini-player-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:auto;padding:.35rem .25rem;border:none;border-radius:var(--radius-sm);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.mini-player-main:hover:not(:disabled){background:transparent;color:inherit}.mini-player-status{margin:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-pink)}.mini-player-poi{margin:0;font-family:var(--font-display);font-size:1.05rem;font-weight:600;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:var(--ink)}.mini-player-open-hint{margin-top:.15rem;font-size:.78rem;font-weight:600;color:var(--accent)}.mini-player-controls{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.mini-player .circular-play{width:4rem;height:4rem}.status{display:flex;align-items:center;gap:.55rem;margin:0 0 1rem;padding:.7rem .9rem;background:var(--accent-tint);border:1px solid color-mix(in srgb,var(--brand-leaf) 40%,var(--border));border-radius:var(--radius-md);font-weight:600;font-size:.9rem;color:var(--accent-deep)}.status:before{content:"";flex:0 0 auto;width:1.05rem;height:1.05rem;background-color:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.2 14.4-4-4 1.4-1.4 2.6 2.6 5.6-5.6 1.4 1.4z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.2 14.4-4-4 1.4-1.4 2.6 2.6 5.6-5.6 1.4 1.4z'/%3E%3C/svg%3E") center / contain no-repeat}.form-error{margin:0 0 .85rem;padding:.6rem .85rem;color:var(--danger);font-size:.87rem;line-height:1.45;background:var(--danger-tint);border:1px solid color-mix(in srgb,var(--danger) 20%,var(--border));border-radius:var(--radius-md)}:where(button){display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:3rem;padding:.85rem 1.15rem;border:none;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer;transition:background var(--transition-fast),transform .1s ease,box-shadow var(--transition-fast)}:where(button:hover:not(:disabled)){background:var(--accent-hover)}button:not([class]),.cta-link{box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 22%,transparent)}button:not([class]):hover:not(:disabled),.cta-link:hover{box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 30%,transparent)}:where(button:active:not(:disabled)){transform:translateY(1px)}:where(button:disabled){opacity:.65;cursor:not-allowed}.btn-secondary{width:auto;min-height:2.5rem;padding:.55rem 1rem;background:transparent;color:var(--accent);border:1.5px solid var(--accent);border-radius:var(--radius-pill)}.btn-secondary:hover:not(:disabled){background:var(--accent-tint);color:var(--accent-hover)}.route-picker h1{margin:0 0 .6rem;font-family:var(--font-display);font-size:1.45rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);line-height:1.3}.route-picker-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.route-picker-option{display:grid;grid-template-columns:1fr auto;column-gap:.75rem;row-gap:.3rem;align-items:center;width:100%;min-height:2.75rem;padding:1rem 1.15rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);font:inherit;font-weight:500;text-align:left;cursor:pointer;box-shadow:var(--shadow-xs);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast),background var(--transition-fast)}.route-picker-option:after{content:"";grid-column:2;grid-row:1 / span 2;width:1.15rem;height:1.15rem;background-color:var(--border-strong);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.6 4.6 7.2 6l6 6-6 6 1.4 1.4L16 12z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.6 4.6 7.2 6l6 6-6 6 1.4 1.4L16 12z'/%3E%3C/svg%3E") center / contain no-repeat;transition:background-color var(--transition-fast),transform var(--transition-fast)}.route-picker-option:hover:not(:disabled){background:var(--surface);border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:var(--shadow-sm);transform:translateY(-1px)}.route-picker-option:hover:not(:disabled):after{background-color:var(--accent);transform:translate(2px)}.route-picker-title{grid-column:1;font-family:var(--font-display);font-weight:600;color:var(--ink);line-height:1.35}.route-picker-description{grid-column:1;font-size:.88rem;font-weight:400;color:var(--muted);line-height:1.45}.back-to-routes{display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:2.75rem;margin:0 0 .85rem;padding:.55rem 1.1rem;background:transparent;color:var(--accent);border:1.5px solid var(--accent);border-radius:var(--radius-pill);font:inherit;font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.back-to-routes:hover:not(:disabled){background:var(--accent-tint);color:var(--accent-hover)}.language-step h1{margin:0 0 .6rem;font-family:var(--font-display);font-size:1.45rem;font-weight:600;letter-spacing:-.02em;line-height:1.3}.language-step-list{list-style:none;margin:0 0 1.25rem;padding:0;display:flex;flex-direction:column;gap:.65rem}.language-step-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:3rem;padding:.85rem 1.15rem;border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;text-align:left;cursor:pointer;box-shadow:var(--shadow-xs);transition:border-color var(--transition-fast),background var(--transition-fast)}.language-step-option:hover:not(:disabled){background:var(--surface);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--ink)}.language-step-option[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint);color:var(--ink)}.language-step-option[aria-pressed=true]:hover:not(:disabled){border-color:var(--accent);background:var(--accent-tint);color:var(--ink)}.language-step-option[aria-pressed=true]:after{content:"";flex:0 0 auto;width:1.2rem;height:1.2rem;background-color:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.55 18.2 3.8 12.45l1.6-1.6 4.15 4.15L18.6 5.95l1.6 1.6z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.55 18.2 3.8 12.45l1.6-1.6 4.15 4.15L18.6 5.95l1.6 1.6z'/%3E%3C/svg%3E") center / contain no-repeat}.experience-language{position:relative;display:flex;align-items:center;justify-content:flex-end;margin:0}.experience-language-trigger{display:inline-flex;align-items:center;gap:.35rem;width:auto;min-width:0;min-height:2.65rem;padding:.45rem .6rem;border:1.5px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink-soft);box-shadow:var(--shadow-xs);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.experience-language-trigger:hover:not(:disabled){background:var(--surface);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:var(--shadow-sm);color:var(--ink-soft)}.experience-language-trigger[aria-expanded=true]{border-color:var(--accent);background:var(--accent-tint)}.experience-language-chevron{flex:0 0 auto;width:.85rem;height:.85rem;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.6 8.6 6 7.2l6 6 6-6 1.4 1.4L12 16z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.6 8.6 6 7.2l6 6 6-6 1.4 1.4L12 16z'/%3E%3C/svg%3E") center / contain no-repeat;transition:transform var(--transition-fast)}.experience-language-chevron[data-open=true]{transform:rotate(180deg)}.experience-language-menu{position:absolute;top:calc(100% + .45rem);right:0;z-index:60;margin:0;padding:.35rem;list-style:none;min-width:10.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);animation:pwa-pop-in .14s ease}@keyframes pwa-pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.experience-language-option{display:flex;align-items:center;gap:.6rem;width:100%;min-height:2.75rem;padding:.55rem .7rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--ink);font:inherit;font-size:.92rem;font-weight:500;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.experience-language-option:hover:not(:disabled){background:var(--accent-tint);color:var(--ink)}.experience-language-option[aria-selected=true]{font-weight:600}.experience-language-option-name{flex:1 1 auto}.experience-language-option-check{flex:0 0 auto;width:1rem;height:1rem;background-color:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.55 18.2 3.8 12.45l1.6-1.6 4.15 4.15L18.6 5.95l1.6 1.6z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.55 18.2 3.8 12.45l1.6-1.6 4.15 4.15L18.6 5.95l1.6 1.6z'/%3E%3C/svg%3E") center / contain no-repeat}.experience-language-flag-icon{display:block;width:1.7rem;height:1.15rem;border-radius:.18rem;box-shadow:0 0 0 1px var(--border);overflow:hidden}.cta-link{display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:100%;min-height:3rem;padding:.85rem 1.15rem;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font:inherit;font-weight:600;text-align:center;text-decoration:none;box-sizing:border-box;transition:background var(--transition-fast)}.cta-link:hover{background:var(--accent-hover)}@media(max-width:480px){.pwa{--pad-x: 1rem;padding:0 var(--pad-x) 2.5rem;box-shadow:none}.brand-name{font-size:1.35rem}.cta-link{min-height:2.85rem}.mini-player{width:100%}}
