:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#24231f;--muted:#77746b;--paper:#f5f1e8;--surface:#fffdf8;--line:#d9d3c5;--accent:#d9502f;--accent-dark:#a9361f;--success:#2e704a;--error:#a2352c;--morph-open-dur:.35s;--morph-close-dur:.25s;--morph-ease:cubic-bezier(.34, 1.25, .64, 1);--morph-close-ease:cubic-bezier(.22, 1, .36, 1);--morph-fade-dur:.2s;--morph-scale:.97;--morph-blur:2px;--morph-rotate:90deg;--text-swap-dur:.15s;--text-swap-translate-y:4px;--text-swap-blur:2px;--text-swap-ease:ease-in-out;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0}button,input,textarea,select{font:inherit}button{color:inherit}.workspace{min-height:100vh}.topbar{z-index:10;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf8e0;justify-content:space-between;align-items:center;gap:24px;min-height:84px;padding:16px clamp(20px,3vw,48px);display:flex;position:sticky;top:0}.topbar h1{letter-spacing:-.03em;margin:2px 0 0;font-family:Georgia,serif;font-size:clamp(24px,3vw,36px);font-weight:500}.eyebrow,.step{color:var(--accent-dark);letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:750}.saved-route-picker{min-width:min(330px,45vw)}.saved-route-picker span,.form-section label>span{color:var(--muted);margin-bottom:7px;font-size:12px;font-weight:650;display:block}.saved-route-picker select{width:100%}.saved-route-controls{align-items:flex-end;gap:10px;display:flex}.admin-link{align-items:center;text-decoration:none;display:inline-flex}.editor-grid{grid-template-columns:minmax(0,1fr) minmax(380px,32vw);height:calc(100vh - 84px);display:grid}.map-panel{background:#d8d4ca;min-height:520px;position:relative;overflow:hidden}.map-canvas{position:absolute;inset:0}.map-loading{z-index:4;color:var(--muted);background:#ebe7dd;place-items:center;display:grid;position:absolute;inset:0}.map-toolbar{z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf8f0;border:1px solid #24231f24;border-radius:14px;align-items:center;gap:7px;padding:8px;display:flex;position:absolute;bottom:24px;left:20px;box-shadow:0 8px 30px #2320181f}.map-point{border:3px solid var(--surface);background:var(--accent);color:#fff;cursor:grab;border-radius:50%;width:28px;height:28px;padding:0;font-size:10px;font-weight:800;box-shadow:0 2px 8px #1f18143d}.map-point:active{cursor:grabbing}.map-station{pointer-events:none;flex-direction:column;align-items:center;gap:3px;display:flex}.map-station-label{max-width:170px;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;background:#fffdf8f2;border:1px solid #1f181424;border-radius:7px;padding:2px 7px;font-size:11px;font-weight:650;line-height:1.25;overflow:hidden;box-shadow:0 2px 6px #1f18142e}.map-station-pin{background:var(--station-color,#c23f24);border:2px solid #fffaf1;border-radius:50% 50% 50% 0;width:16px;height:16px;transform:rotate(-45deg);box-shadow:0 3px 6px #1f181452}.map-station[data-endpoint=true] .map-station-pin{border-width:3px;width:21px;height:21px}.map-station[data-endpoint=true] .map-station-label{font-size:12px;font-weight:800}.button{border:1px solid var(--line);background:var(--surface);cursor:pointer;min-height:36px;transition:border-color .15s var(--morph-close-ease), background-color .15s var(--morph-close-ease), color .15s var(--morph-close-ease), box-shadow .2s var(--morph-close-ease), translate .15s var(--morph-close-ease), scale .15s var(--morph-close-ease);border-radius:10px;padding:8px 14px;font-size:12px;font-weight:700}.button:hover:not(:disabled),.button.active{border-color:var(--ink)}.button:active:not(:disabled){scale:.97}.button:disabled{opacity:.4;cursor:not-allowed}.button.primary{border-color:var(--accent);background:var(--accent);color:#fff;min-width:118px}.button.primary:hover:not(:disabled){border-color:var(--accent-dark);background:var(--accent-dark);translate:0 -1px;box-shadow:0 8px 20px #d9502f4d}.button.danger{color:var(--error)}.button.danger:hover:not(:disabled){border-color:var(--error);background:#faefed}.point-count{color:var(--muted);white-space:nowrap;padding:0 8px;font-size:11px}.form-panel{background:var(--surface);border-left:1px solid var(--line);overflow-y:auto}.form-section{border-bottom:1px solid var(--line);padding:24px 28px}.form-section.intro{padding-top:30px}.form-section h2{letter-spacing:-.02em;margin:8px 0 10px;font-family:Georgia,serif;font-size:24px;font-weight:500}.form-section p{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.form-section label{margin-top:18px;display:block}.form-section small{font-weight:450}.description-section-editor{margin-top:18px}.description-section-label{color:var(--muted);margin-bottom:9px;font-size:12px;font-weight:650;display:block}.description-section-tabs{gap:7px;padding-bottom:3px;display:flex;overflow-x:auto}.description-section-tabs button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;flex:none;min-height:34px;padding:7px 13px;font-size:12px}.description-section-tabs button[aria-pressed=true]{background:#e9edeb;border-color:#dfe2df;font-weight:700}.description-section-tabs button:disabled{opacity:.45;cursor:not-allowed}.description-section-tabs .description-section-add{color:var(--accent-dark);border-style:dashed;font-weight:700}.description-section-fields{position:relative}.description-section-remove{color:var(--error);margin-top:10px}input,textarea,select{border:1px solid var(--line);width:100%;color:var(--ink);transition:border-color .15s var(--morph-close-ease), box-shadow .15s var(--morph-close-ease);background:#fffefb;border-radius:10px;outline:none}input,select{min-height:40px;padding:9px 11px}textarea{resize:vertical;padding:11px;line-height:1.45}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #d9502f24}.form-section label>.route-color-field{align-items:center;gap:10px;margin:0;display:flex}.route-color-field input{cursor:pointer;width:52px;padding:3px}.route-color-field output{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.media-upload-button{width:100%;margin-top:10px}.media-meta{color:var(--muted);word-break:break-word;margin:6px 2px 0;font-size:11px}.media-drop{cursor:pointer;transition:border-color .15s var(--morph-close-ease), background-color .15s var(--morph-close-ease), box-shadow .15s var(--morph-close-ease);background:#fffdf899;border:1px dashed #24231f59;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:7px;padding:13px 14px;display:flex}.media-drop:hover,.media-drop[data-drag=true]{border-color:var(--accent);background:#fffdf8f2}.media-drop[data-drag=true]{border-style:solid;box-shadow:0 0 0 3px #d9502f24}.media-drop input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.media-thumbs{flex:0 0 100%;grid-template-columns:repeat(auto-fill,44px);gap:6px;display:grid}.media-thumb{position:relative}.media-thumbs img{object-fit:cover;border:1px solid var(--line);background:var(--surface);border-radius:10px;width:44px;height:44px}.media-thumb-remove{border:1px solid var(--line);background:var(--surface);width:16px;height:16px;color:var(--muted);cursor:pointer;transition:border-color .15s var(--morph-close-ease), color .15s var(--morph-close-ease);border-radius:999px;place-items:center;padding:0;font-size:10px;line-height:1;display:grid;position:absolute;top:-5px;right:-5px}.media-thumb-remove:hover{border-color:var(--error);color:var(--error)}.media-thumb-fallback{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--muted);letter-spacing:.02em;border-radius:10px;place-items:center;font-size:8px;font-weight:800;display:grid}.admin-media-saved{border-top:1px solid var(--line);gap:10px;margin-top:8px;padding-top:14px;display:grid}.admin-media-saved-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-media-saved-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.admin-media-saved-grid>img,.admin-media-saved-grid>div>video{aspect-ratio:3/2;object-fit:cover;border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%}.admin-media-pending{border:1px dashed var(--line);min-height:74px;color:var(--muted);text-align:center;border-radius:10px;place-items:center;padding:8px;font-size:10px;display:grid}.media-drop-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.media-drop-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;overflow:hidden}.media-drop-copy>span{color:var(--muted);font-size:11px}.media-drop-remove{border:1px solid var(--line);background:var(--surface);width:26px;height:26px;color:var(--muted);cursor:pointer;transition:border-color .15s var(--morph-close-ease), color .15s var(--morph-close-ease);border-radius:999px;flex:none;place-items:center;padding:0;font-size:15px;line-height:1;display:grid}.media-drop-remove:hover{border-color:var(--error);color:var(--error)}.media-upload-message{border:1px solid;border-radius:10px;padding:11px 12px;margin-top:14px!important}.media-upload-message.success{color:var(--success);background:#edf6f0;border-color:#a8c7b4}.media-upload-message.error{color:var(--error);background:#faefed;border-color:#d6aaa5}.import-section summary{cursor:pointer;transition:color .15s var(--morph-close-ease);font-size:13px;font-weight:750}.import-section summary:hover{color:var(--accent-dark)}.import-section textarea{margin-top:16px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.inline-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.file-button{align-items:center;display:inline-flex}.file-button input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.text-button{color:var(--accent-dark);cursor:pointer;transition:color .15s var(--morph-close-ease), scale .15s var(--morph-close-ease);background:0 0;border:0;padding:0;font-size:12px;font-weight:750}.text-button:hover:not(:disabled){color:var(--accent);text-decoration:underline}.text-button:active:not(:disabled){scale:.97}.lifecycle-section{background:#faf7f0;border:1px solid #24231f1a;border-radius:14px;margin:14px 20px 0}.lifecycle-section p{margin-top:10px}.lifecycle-actions,.save-actions{flex-wrap:wrap;gap:8px;display:flex}.lifecycle-actions{margin-top:14px}.state-badge{border:1px solid var(--line);background:var(--surface);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;transition:border-color .25s var(--morph-close-ease), background-color .25s var(--morph-close-ease), color .25s var(--morph-close-ease);border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800}.state-badge.published{color:var(--success);border-color:#a8c7b4}.state-badge.hidden{color:#7a5b19;border-color:#c9b68c}.state-badge.archived{color:var(--error);border-color:#d6aaa5}.empty{margin-top:12px!important}.ordered-list{margin:14px 0 0;padding:0;list-style:none}.ordered-list li{min-height:43px;animation:rise-in .3s var(--morph-close-ease);transition:background-color .15s var(--morph-close-ease);border-top:1px solid #e7e2d8;border-radius:8px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px;display:grid}.ordered-list li:hover,.station-list li:focus-within{background:#f7f3ea}.ordered-list li:last-child{border-bottom:1px solid #e7e2d8}.order-index{border:1px solid var(--line);width:22px;height:22px;color:var(--muted);border-radius:7px;place-items:center;font-size:10px;font-weight:800;display:grid}.point-list code{color:#59564f;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.point-list li{grid-template-columns:44px minmax(0,1fr) auto}.point-list .order-index{width:auto;min-width:22px;padding:0 3px}.point-list .selected-point{outline:1px solid var(--accent);background:#f7f3ea}.point-select{text-align:left;text-overflow:ellipsis;min-height:36px;overflow:hidden}.point-pagination{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.point-pagination label{align-items:center;gap:6px;margin:0;display:flex}.point-pagination input{width:76px}.station-list input{min-height:34px;box-shadow:none;background:0 0;border:0;padding:6px 8px}.station-field{align-items:center;gap:8px;min-width:0;display:flex}.station-field input{flex:1;min-width:0}.station-located{border:1px solid var(--line);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;flex:none;padding:2px 7px;font-size:10px;font-weight:700}.row-actions{display:flex}.row-actions button{width:28px;height:30px;color:var(--muted);cursor:pointer;transition:background-color .15s var(--morph-close-ease), color .15s var(--morph-close-ease), scale .15s var(--morph-close-ease);background:0 0;border:0;border-radius:7px}.row-actions button:hover:not(:disabled){color:var(--ink);background:#efebe3}.row-actions button:active:not(:disabled){scale:.88}.row-actions button:disabled{opacity:.25;cursor:not-allowed}.message{animation:rise-in .3s var(--morph-close-ease);border:1px solid;border-radius:12px;margin:18px 28px 0;padding:12px 14px;font-size:12px;line-height:1.45}.message.success{color:var(--success);background:#edf6f0;border-color:#a8c7b4}.message.error{color:var(--error);background:#faefed;border-color:#d6aaa5}.save-bar{border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffdf8f5;justify-content:space-between;align-items:center;gap:20px;padding:20px 28px;display:flex;position:sticky;bottom:0}.save-bar strong,.save-bar span{display:block}.save-bar strong{font-family:Georgia,serif;font-size:15px;font-weight:500}.save-bar span{color:var(--muted);margin-top:3px;font-size:10px}.save-actions{justify-content:flex-end}.maplibregl-ctrl-attrib{font-size:10px!important}.public-shell{background:var(--surface);flex-direction:column;height:100dvh;display:flex;overflow:hidden}.public-account-actions{-webkit-tap-highlight-color:transparent;z-index:3;transition:top var(--morph-close-dur) var(--morph-close-ease), right var(--morph-close-dur) var(--morph-close-ease), bottom var(--morph-close-dur) var(--morph-close-ease), left var(--morph-close-dur) var(--morph-close-ease);flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex;position:absolute;top:20px;right:20px}.public-account-actions .button{height:44px;color:var(--ink);border-radius:999px;align-items:center;gap:8px;padding:0 16px;text-decoration:none;display:inline-flex}.public-account-actions .button:not(.primary){-webkit-backdrop-filter:blur(12px);background:#fffdf8eb;border-color:#24231f24;box-shadow:0 8px 30px #2320181f}.public-account-actions .button:not(.primary):hover:not(:disabled){border-color:#24231f52;translate:0 -1px;box-shadow:0 10px 34px #23201829}.public-account-actions .button.primary{border-color:var(--accent);color:#fff}.public-account-actions .button.primary:hover:not(:disabled){border-color:var(--accent-dark);box-shadow:0 10px 26px #d9502f52}.public-grid{flex:1;min-height:0;display:grid;position:relative}.public-map-panel{background:#d8d4ca;min-height:0;position:relative;overflow:hidden}.public-map-notice{z-index:3;max-width:min(360px,100% - 40px);color:var(--muted);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf8f0;border:1px solid #24231f24;padding:12px 15px;font-size:12px;position:absolute;top:76px;left:20px;box-shadow:0 8px 30px #2320181f}.public-map-notice.error{color:var(--error)}.route-search{z-index:4;-webkit-tap-highlight-color:transparent;position:absolute;top:20px;left:20px}.route-search-pill{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:44px;height:44px;transition:width var(--morph-close-dur) var(--morph-close-ease), box-shadow var(--morph-close-dur) var(--morph-close-ease);background:#fffdf8eb;border:1px solid #24231f24;border-radius:22px;align-items:center;display:flex;overflow:hidden;box-shadow:0 8px 30px #2320181f}.route-search[data-open=true] .route-search-pill{width:min(320px,100vw - 40px);transition:width var(--morph-open-dur) var(--morph-ease), box-shadow var(--morph-close-dur) var(--morph-close-ease)}.route-search:not([data-open=true]) .route-search-pill{animation:4.2s ease-in-out infinite route-search-breathe}@keyframes route-search-breathe{0%,to{box-shadow:0 8px 30px #2320181f}50%{box-shadow:0 10px 34px #d9502f42}}.route-search-trigger{width:44px;height:44px;color:var(--ink);cursor:pointer;transition:transform .15s var(--morph-close-ease);background:0 0;border:0;flex:none;place-items:center;display:grid;position:relative}.route-search-trigger:active{transform:scale(.96)}.route-search-trigger svg{transition:opacity var(--morph-fade-dur) var(--morph-close-ease), transform var(--morph-open-dur) var(--morph-close-ease), filter var(--morph-fade-dur) var(--morph-close-ease);position:absolute}.route-search:not([data-open=true]) .route-search-trigger:hover .route-search-icon-search{transform:scale(1.12)}.route-search:not([data-open=true]) .route-search-icon-search{animation:4.2s ease-in-out infinite route-search-pulse}@keyframes route-search-pulse{0%,to{scale:1}50%{scale:1.08}}.route-search-icon-close{opacity:0;transform:scale(var(--morph-scale)) rotate(calc(-1 * var(--morph-rotate)));filter:blur(var(--morph-blur))}.route-search[data-open=true] .route-search-icon-search{opacity:0;transform:scale(var(--morph-scale)) rotate(var(--morph-rotate));filter:blur(var(--morph-blur))}.route-search[data-open=true] .route-search-icon-close{opacity:1;filter:blur();transform:scale(1)rotate(0)}.route-search-input{min-width:0;height:100%;color:var(--ink);background:0 0;border:0;outline:none;flex:1;padding-right:18px;font-size:13px}.route-search-input::placeholder{color:var(--muted)}.route-search-input:focus{box-shadow:none}.route-search-results{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;width:min(320px,100vw - 40px);max-height:min(300px,44dvh);transform:translateY(-6px) scale(var(--morph-scale));transform-origin:0 0;filter:blur(var(--morph-blur));pointer-events:none;transition:opacity var(--morph-fade-dur) var(--morph-close-ease), transform var(--morph-open-dur) var(--morph-close-ease), filter var(--morph-fade-dur) var(--morph-close-ease);background:#fffdf8f0;border:1px solid #24231f24;border-radius:14px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 10px);left:0;overflow-y:auto;box-shadow:0 8px 30px #2320181f}.route-search[data-open=true] .route-search-results{opacity:1;filter:blur();pointer-events:auto;transition:opacity var(--morph-fade-dur) var(--morph-close-ease), transform var(--morph-open-dur) var(--morph-ease), filter var(--morph-fade-dur) var(--morph-close-ease);transform:translateY(0)scale(1)}.route-search-results li{opacity:0;transition:opacity var(--morph-fade-dur) var(--morph-close-ease), transform var(--morph-fade-dur) var(--morph-close-ease);transform:translateY(-4px)}.route-search[data-open=true] .route-search-results li{opacity:1;transition-delay:calc(.12s + var(--i,0) * 40ms);transform:translateY(0)}.route-search[data-open=false] .route-search-results li{transition-delay:0s}.route-search-results :is(button,a){text-align:left;cursor:pointer;width:100%;color:inherit;transition:background .15s var(--morph-close-ease), transform .15s var(--morph-close-ease);background:0 0;border:0;border-radius:10px;gap:2px;padding:9px 12px;text-decoration:none;display:grid}.route-search-results :is(button,a):hover,.route-search-results :is(button,a):focus-visible{background:#f3efe7;transform:translate(2px)}.route-search-results :is(button,a):active{transform:translate(2px)scale(.98)}.route-search-results button[data-active=true]{background:#f9ece7}.route-search-results strong{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-family:Georgia,serif;font-size:15px;font-weight:500;display:block;overflow:hidden}.route-search-results span{color:var(--muted);font-size:11px}.route-search-empty{color:var(--muted);padding:12px;font-size:12px}@keyframes rise-in{0%{opacity:0;filter:blur(var(--morph-blur));transform:translateY(10px)}}@keyframes shimmer-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes badge-pop{0%{scale:1}45%{scale:1.18}to{scale:1}}.auth-card>*{animation:rise-in .45s var(--morph-close-ease) both}.auth-card>:nth-child(2){animation-delay:55ms}.auth-card>:nth-child(3){animation-delay:.11s}.auth-card>:nth-child(4){animation-delay:.165s}.auth-card>:nth-child(5){animation-delay:.22s}.auth-card>:nth-child(6){animation-delay:.275s}.auth-card>:nth-child(n+7){animation-delay:.32s}.form-panel>*{animation:rise-in .45s var(--morph-close-ease) both}.form-panel>:nth-child(2){animation-delay:55ms}.form-panel>:nth-child(3){animation-delay:.11s}.form-panel>:nth-child(4){animation-delay:.165s}.form-panel>:nth-child(5){animation-delay:.22s}.form-panel>:nth-child(n+6){animation-delay:.26s}.account-admin-list>article{animation:rise-in .45s var(--morph-close-ease) both}.account-admin-list>article:nth-of-type(2){animation-delay:60ms}.account-admin-list>article:nth-of-type(3){animation-delay:.12s}.account-admin-list>article:nth-of-type(4){animation-delay:.18s}.account-admin-list>article:nth-of-type(5){animation-delay:.24s}.account-admin-list>article:nth-of-type(n+6){animation-delay:.3s}.message,.auth-message{animation:rise-in .3s var(--morph-close-ease)}.public-map-notice{animation:rise-in .35s var(--morph-close-ease)}.onboarding-progress li.done>span{animation:badge-pop .45s var(--morph-ease)}.button:focus-visible,.text-button:focus-visible,.auth-tabs button:focus-visible,.row-actions button:focus-visible,.auth-brand:focus-visible,.route-search-trigger:focus-visible,.route-search-results :is(button,a):focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.route-search-pill,.route-search-trigger,.route-search-trigger svg,.route-search-results,.route-search-results li,.route-search-results :is(button,a),.button,.text-button,.auth-tabs button,.row-actions button,.import-section summary,input,textarea,select,.auth-card>*,.form-panel>*,.account-admin-list>article,.ordered-list li,.my-publication,.my-upload,.message,.auth-message,.public-map-notice,.account-admin-row,.state-badge,.onboarding-progress li>span,.auth-loading,.auth-brand,.save-bar,.route-detail-skeleton,.route-detail-skeleton *{transition:none!important;animation:none!important}}.auth-shell{background:var(--paper);min-height:100vh;padding-bottom:64px}.auth-header{z-index:10;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf8e0;justify-content:space-between;align-items:center;min-height:76px;padding:18px clamp(20px,4vw,56px);display:flex;position:sticky;top:0}.auth-brand{color:var(--ink);transition:color .15s var(--morph-close-ease);font-family:Georgia,serif;font-size:28px;text-decoration:none}.auth-brand:hover{color:var(--accent-dark)}.auth-card{background:var(--surface);border:1px solid #24231f1a;border-radius:20px;width:min(520px,100% - 32px);margin:clamp(48px,9vh,96px) auto 0;padding:clamp(28px,5vw,48px);box-shadow:0 24px 60px #23201824}.auth-card h1{letter-spacing:-.04em;margin:10px 0 26px;font-family:Georgia,serif;font-size:clamp(32px,6vw,48px);font-weight:400;line-height:1}.auth-card form>label,.auth-name-grid label{margin-top:17px;display:block}.auth-card label span{color:var(--muted);margin-bottom:7px;font-size:12px;font-weight:650;display:block}.auth-tabs{background:#f3efe7;border:1px solid #24231f1f;border-radius:12px;gap:4px;margin:6px 0 10px;padding:4px;display:flex}.auth-tabs button{color:var(--muted);cursor:pointer;transition:background-color .2s var(--morph-close-ease), color .2s var(--morph-close-ease), box-shadow .2s var(--morph-close-ease), scale .15s var(--morph-close-ease);background:0 0;border:0;border-radius:9px;flex:1;padding:9px;font-size:12px;font-weight:750}.auth-tabs button:active{scale:.97}.auth-tabs button.active{background:var(--surface);color:var(--ink);box-shadow:0 2px 8px #2320181f}.auth-name-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.auth-submit{width:100%;margin-top:22px}.auth-secondary{margin:18px auto 0;display:block}.auth-message{border:1px solid;border-radius:12px;margin:18px 0 0;padding:11px 12px;font-size:12px;line-height:1.45}.auth-message.success{color:var(--success);background:#edf6f0;border-color:#a8c7b4}.auth-message.error{color:var(--error);background:#faefed;border-color:#d6aaa5}.auth-copy{color:var(--muted);font-size:13px;line-height:1.55}.auth-loading{text-align:center;background:linear-gradient(90deg, #a19d92 0%, var(--ink) 50%, #a19d92 100%);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;margin:96px auto;font-size:13px;font-weight:650;animation:2.4s linear infinite shimmer-sweep}.account-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:4px;padding:15px 0 20px;display:grid}.account-summary>strong{font-family:Georgia,serif;font-size:19px;font-weight:500}.account-summary>span,.account-summary>small{color:var(--muted)}.account-summary>span{font-size:12px}.account-summary>small{margin-top:5px;font-size:10px}.auth-admin-link{justify-content:center;align-items:center;width:100%;margin-top:18px;text-decoration:none;display:flex}.profile-form{border-bottom:1px solid var(--line);margin-top:26px;padding-bottom:24px}.profile-email-note{color:var(--muted);margin-top:12px;font-size:10px;display:block}.avatar-editor{grid-template-columns:64px 1fr 1fr;align-items:center;gap:10px;margin-top:18px;display:grid}.avatar-editor img,.avatar-editor>div{object-fit:cover;border-radius:50%;width:64px;height:64px}.avatar-editor>div{background:#eee7da;place-items:center;font-family:Georgia,serif;font-size:24px;display:grid}.avatar-editor .button{text-align:center;justify-content:center}.onboarding-progress{margin-top:26px}.onboarding-heading{justify-content:space-between;align-items:end;gap:16px;margin-bottom:12px;display:flex}.onboarding-heading strong{margin-top:5px;font-family:Georgia,serif;font-size:20px;font-weight:500;display:block}.onboarding-heading>span{color:var(--muted);font-size:10px}.onboarding-progress ol{margin:0 0 18px;padding:0;list-style:none}.onboarding-progress li{border-top:1px solid var(--line);grid-template-columns:30px minmax(0,1fr);gap:10px;padding:13px 0;display:grid}.onboarding-progress li:last-child{border-bottom:1px solid var(--line)}.onboarding-progress li>span{border:1px solid var(--line);width:24px;height:24px;color:var(--muted);transition:border-color .3s var(--morph-close-ease), background-color .3s var(--morph-close-ease), color .3s var(--morph-close-ease);border-radius:8px;place-items:center;font-size:9px;font-weight:800;display:grid}.onboarding-progress li.done>span{color:var(--success);background:#edf6f0;border-color:#a8c7b4}.onboarding-progress li.pending>span{background:#f3efe7}.onboarding-progress li strong,.onboarding-progress li small{display:block}.onboarding-progress li strong{font-size:12px}.onboarding-progress li small{color:var(--muted);margin-top:4px;font-size:10px;line-height:1.4}.my-publications{border-top:1px solid var(--line);margin-top:26px;padding-top:24px}.my-publication{border-bottom:1px solid var(--line);animation:rise-in .3s var(--morph-close-ease);gap:10px;padding:18px 0;display:grid}.my-publication>div:first-child{justify-content:space-between;gap:12px;display:flex}.my-publication small{color:var(--muted);font-size:10px}.my-publication>p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.my-publication img{object-fit:cover;border-radius:12px;width:100%;height:auto;max-height:320px}.media-progress{gap:6px;display:grid}.media-progress>progress,progress.media-progress{width:100%;height:6px;accent-color:var(--accent);border-radius:999px;overflow:hidden}.my-upload{animation:rise-in .3s var(--morph-close-ease);background:#f3efe7;border-radius:12px;gap:8px;padding:12px;font-size:11px;display:grid}.my-upload-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.account-admin-list{width:min(960px,100% - 40px);margin:36px auto}.account-admin-list>.auth-message{margin-bottom:16px}.account-admin-empty{border:1px solid var(--line);background:var(--surface);color:var(--muted);text-align:center;border-radius:16px;padding:36px;box-shadow:0 8px 30px #2320180f}.account-admin-row{border:1px solid var(--line);background:var(--surface);transition:translate .2s var(--morph-close-ease), box-shadow .2s var(--morph-close-ease), border-color .2s var(--morph-close-ease);border-radius:14px;justify-content:space-between;align-items:center;gap:24px;padding:18px 20px;display:flex;box-shadow:0 8px 30px #2320180f}.account-admin-row:hover{border-color:#24231f38;translate:0 -2px;box-shadow:0 14px 38px #2320181f}.account-admin-row+.account-admin-row{margin-top:10px}.account-admin-row strong,.account-admin-row span{display:block}.account-admin-row>div:first-child span{color:var(--muted);margin-top:5px;font-size:11px}.account-admin-actions{align-items:center;gap:10px;display:flex}.state-badge.active{color:var(--success);border-color:#a8c7b4}.state-badge.suspended{color:var(--error);border-color:#d6aaa5}@media (max-width:900px){.topbar{flex-direction:column;align-items:flex-start}.saved-route-picker{width:100%;min-width:0}.saved-route-controls{width:100%}.editor-grid{grid-template-columns:1fr;height:auto}.map-panel{min-height:60vh}.form-panel{border-left:0;overflow:visible}.map-toolbar{bottom:12px;left:12px;right:12px;overflow-x:auto}.public-shell{height:auto;min-height:100dvh;overflow:visible}.public-grid{height:auto}.route-search[data-open=true]~.public-account-actions{justify-content:flex-start;inset:auto auto 20px 20px}.public-map-panel{min-height:58vh}.auth-name-grid{grid-template-columns:1fr;gap:0}.avatar-editor{grid-template-columns:64px 1fr}.avatar-editor>button{grid-column:2}.account-admin-row{flex-direction:column;align-items:flex-start}}.route-mobile-sheet-layer{z-index:30;pointer-events:none;align-items:flex-end;display:flex;position:fixed;inset:0}.route-mobile-sheet-backdrop{pointer-events:auto;cursor:default;background:0 0;border:0;padding:0;position:absolute;inset:0}.route-mobile-sheet{pointer-events:auto;-webkit-tap-highlight-color:transparent;will-change:transform;z-index:1;width:calc(100% - 16px);color:var(--ink);border:1px solid #0000;border-radius:1.4rem 1.4rem 0 0;margin:0 8px;position:relative}.route-mobile-sheet-surface{z-index:-1;border-radius:inherit;pointer-events:none;position:absolute;inset:-1px}.route-mobile-sheet-grip{justify-content:center;padding:8px 12px 4px;display:flex}.route-mobile-sheet-grip-button{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:0 0;border:0;padding:8px 20px}.route-mobile-sheet-grip-button:active{cursor:grabbing}.route-mobile-sheet-handle{background:#24231f4d;border-radius:999px;width:40px;height:6px;display:block}.route-mobile-sheet-body{will-change:transform;height:calc(100% - 44.8px);padding:6px 18px 10px;overflow-y:auto}.route-mobile-sheet-section{border-bottom:1px solid #24231f1a;padding:10px 0 16px}.route-mobile-sheet-section:last-child{border-bottom:0}.route-mobile-sheet-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:700}.route-mobile-sheet-route{align-items:center;gap:12px;display:flex}.route-back-arrow{width:32px;height:32px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;justify-content:center;align-self:flex-start;align-items:center;margin:5.4px 0 0 -6px;padding:0;display:inline-flex}.route-back-arrow:hover{background:#24231f0d}.route-mobile-sheet-route-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.route-mobile-sheet-route-copy strong{letter-spacing:-.015em;font-size:26px;font-weight:680;line-height:1.25}.route-mobile-sheet-route-copy>span{color:var(--muted);font-size:12.5px}.route-mobile-sheet-dot{border-radius:999px;flex:none;width:12px;height:12px;box-shadow:0 0 0 2px #24231f1f}.route-mobile-sheet-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.route-mobile-sheet-list :is(button,a){text-align:left;width:100%;color:inherit;border:1px solid var(--line);cursor:pointer;background:#ffffff8c;border-radius:14px;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;transition:background .2s,border-color .2s;display:flex}.route-mobile-sheet-list button[data-active=true]{background:#fffdf8;border-color:#d9502f73;box-shadow:0 2px 10px #d9502f1a}.route-mobile-sheet-list .route-mobile-sheet-route-copy strong{font-size:13px}.route-mobile-sheet-list .route-mobile-sheet-route-copy>span{font-size:11px}.route-mobile-sheet-empty{color:var(--muted);margin:0;font-size:13px}.route-detail-note{color:var(--muted);margin:8px 0 0;font-size:12.5px;line-height:1.5}.route-detail-note.error{color:var(--error)}.route-detail-skeleton{gap:18px;display:grid}.route-detail-skeleton-row{background:#fffefbcc;border:1px solid #ffffffe6;border-radius:22px;gap:18px;padding:18px;display:grid}.route-detail-skeleton-author{align-items:center;gap:10px;display:flex}.route-detail-skeleton-avatar,.route-detail-skeleton-line,.route-detail-skeleton-gallery>span{background:linear-gradient(90deg,#24231f0d 25%,#24231f21 50%,#24231f0d 75%) 0 0/200% 100%;border-radius:999px;animation:1.7s linear infinite shimmer-sweep;display:block}.route-detail-skeleton-avatar{flex:0 0 36px;height:36px}.route-detail-skeleton-line{height:9px}.route-detail-skeleton-line.skeleton-name{width:96px;height:11px}.route-detail-skeleton-line.skeleton-date{width:76px}.route-detail-skeleton-line.skeleton-copy{width:82%}.route-detail-skeleton-gallery{border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid;overflow:hidden}.route-detail-skeleton-gallery>span{aspect-ratio:4/3;border-radius:0}.route-detail-skeleton-gallery>span:first-child{aspect-ratio:16/10;grid-column:1/-1}.route-detail-description{border-bottom:1px solid #24231f1a;margin-top:20px;padding-bottom:14px}.route-detail-description-tabs{scrollbar-width:none;gap:8px;margin-bottom:16px;padding-bottom:2px;display:flex;overflow-x:auto}.route-detail-description-tabs::-webkit-scrollbar{display:none}.route-detail-description-tabs button{color:#575651;cursor:pointer;height:28px;transition:border-color .15s var(--morph-close-ease), background-color .15s var(--morph-close-ease), color .15s var(--morph-close-ease);background:0 0;border:1px solid #24231f1f;border-radius:999px;flex:none;padding:0 18px;font-size:12px;line-height:1}.route-detail-description-tabs button[aria-pressed=true]{color:var(--ink);background:#e9edeb;border-color:#e1e5e3;font-weight:600}.route-detail-description-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.route-detail-description-panel[hidden]{display:none}.route-detail-description-text{overflow-wrap:anywhere;white-space:pre-line}.route-detail-description-text:not(.expanded){-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.route-detail-more{color:#06c;cursor:pointer;background:0 0;border:0;margin-top:6px;padding:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:13px;font-weight:600;display:block}.route-detail-more:hover{color:#0052a3;text-decoration:underline}.t-text-swap{filter:blur();opacity:1;transition:transform var(--text-swap-dur) var(--text-swap-ease), filter var(--text-swap-dur) var(--text-swap-ease), opacity var(--text-swap-dur) var(--text-swap-ease);will-change:transform, filter, opacity;display:inline-block;transform:translateY(0)}.t-text-swap.is-exit{transform:translateY(calc(var(--text-swap-translate-y) * -1));filter:blur(var(--text-swap-blur));opacity:0}.t-text-swap.is-enter-start{transform:translateY(var(--text-swap-translate-y));filter:blur(var(--text-swap-blur));opacity:0;transition:none}@media (prefers-reduced-motion:reduce){.t-text-swap{transition:none!important}}.route-detail-label{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:12px;margin:24px 4px 16px;font-size:14px;font-weight:650;display:flex}.route-detail-label:after{content:"";background:linear-gradient(90deg,#36423b21,#0000);flex:1;height:1px}.route-detail-contributions{gap:18px;margin:0;padding:0;list-style:none;display:grid}.route-detail-contribution{min-width:0;animation:rise-in .3s var(--morph-close-ease);background:linear-gradient(145deg,#fffefbf0,#fffefbcc);border:1px solid #ffffffe6;border-radius:22px;padding:18px;box-shadow:0 10px 28px -14px #26302d2e,inset 0 1px #fff}.route-detail-author{align-items:center;gap:10px;display:flex}.route-detail-author-copy{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.route-detail-author strong{letter-spacing:-.015em;overflow-wrap:anywhere;font-size:13px;font-weight:650;line-height:1.35}.route-detail-author time{color:#696b63;font-size:10.5px;line-height:1.4}.route-detail-avatar{object-fit:cover;border:2px solid #fffefa;border-radius:50%;flex:0 0 36px;width:36px;height:36px;box-shadow:0 2px 8px #24231f1a}.route-detail-avatar-placeholder{color:#777e6f;background:#eeeee7;place-items:center;display:grid}.route-detail-media-count{color:#696b63;font-variant-numeric:tabular-nums;background:#36423b0b;border-radius:8px;flex-shrink:0;align-items:center;gap:5px;padding:5px 7px;font-size:10px;display:inline-flex}.route-detail-copy{color:var(--muted);margin:8px 0 0;font-size:13px;line-height:1.6}.route-detail-contribution>.route-detail-copy{color:#50534b;overflow-wrap:anywhere;margin-top:16px;font-size:13px;line-height:1.65}.route-detail-gallery{border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:18px;display:grid;overflow:hidden}.route-detail-thumb{aspect-ratio:4/3;background:var(--surface);cursor:pointer;width:100%;min-width:0;height:auto;transition:transform .18s var(--morph-close-ease);border:0;border-radius:0;padding:0;display:block;position:relative;overflow:hidden}.route-detail-gallery>:first-child,.route-detail-gallery>:last-child:nth-child(2n){aspect-ratio:16/10;grid-column:1/-1}.route-detail-thumb:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.route-detail-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .4s var(--morph-close-ease);display:block}.route-detail-more-photos{color:#fff;letter-spacing:-.025em;pointer-events:none;background:#121a169e;place-items:center;font-size:18px;font-weight:650;display:grid;position:absolute;inset:0}@media (hover:hover){.route-detail-thumb:hover img{transform:scale(1.045)}.route-detail-thumb.video:hover>span{transform:scale(1.08)}}button.route-detail-thumb:active{transform:scale(.98)}.route-detail-thumb.pending{color:#696b63;text-align:center;cursor:default;background:#eeeee7;place-items:center;padding:12px;font-size:11px;line-height:1.5;display:grid}button.route-detail-thumb.pending{cursor:pointer}.route-detail-thumb.video{background-position:50%;background-size:cover;place-items:center;display:grid}.route-detail-thumb.video>span{-webkit-backdrop-filter:blur(12px);width:36px;height:36px;color:var(--ink);transition:transform .25s var(--morph-close-ease);background:#fffdf8d9;border:1px solid #fffc;border-radius:999px;place-items:center;font-size:12px;display:grid;box-shadow:0 4px 16px #24231f29}.route-media-lightbox{z-index:60;width:100%;max-width:none;height:100dvh;max-height:none;padding:max(20px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));color:#fff;contain:layout paint;background:#111614f7;border:0;margin:0;position:fixed;inset:0;overflow:hidden}.route-media-lightbox[open]{animation:lightbox-in .2s var(--morph-close-ease);grid-template-rows:auto minmax(0,1fr) auto;gap:20px;display:grid}.route-media-lightbox::backdrop{-webkit-backdrop-filter:blur(16px);background:#111614cc}.route-media-lightbox-header{align-items:center;gap:20px;width:100%;min-width:0;display:flex}.route-media-lightbox-header strong{overflow-wrap:anywhere;flex:1;min-width:0;font-size:14px;font-weight:600}.route-media-lightbox-header>span{color:#ffffffa6;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.route-media-lightbox-close,.route-media-lightbox-arrow{color:#fff;cursor:pointer;width:44px;height:44px;transition:background-color .18s ease, transform .18s var(--morph-close-ease);background:#ffffff12;border:1px solid #ffffff29;border-radius:50%;flex-shrink:0;place-items:center;padding:0;display:grid}.route-media-lightbox-close{font-size:25px;line-height:1}.route-media-lightbox-close:hover,.route-media-lightbox-arrow:hover:not(:disabled){background:#ffffff29}.route-media-lightbox-close:active,.route-media-lightbox-arrow:active:not(:disabled){transform:scale(.94)}.route-media-lightbox-arrow:disabled{opacity:.25;cursor:default}.route-media-lightbox button:focus-visible{outline-offset:3px;outline:2px solid #fff}.route-media-lightbox button{-webkit-tap-highlight-color:transparent}.route-media-lightbox-stage{grid-template-columns:minmax(0,1fr);justify-self:center;align-items:center;width:min(1440px,100%);min-width:0;max-width:100%;min-height:0;display:grid;overflow:hidden}.route-media-lightbox-stage figure{grid-area:1/1;place-items:center;width:100%;min-width:0;height:100%;min-height:0;margin:0;display:grid;position:relative;overflow:hidden}.route-media-lightbox-arrow{z-index:1;grid-area:1/1;margin:8px}.route-media-lightbox-arrow.previous{justify-self:start}.route-media-lightbox-arrow.next{justify-self:end}.route-media-lightbox-photo{object-fit:contain;width:100%;height:100%;animation:.16s lightbox-in;display:block;position:absolute;inset:0}.route-media-lightbox-pending{color:#ffffffb3;text-align:center;font-size:14px}.route-media-lightbox-video{background:#111;border-radius:12px;width:min(960px,100%);max-height:100%;overflow:auto}.route-media-lightbox-video video{max-height:calc(100dvh - 230px);display:block}.route-media-lightbox-thumbnails{overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#ffffff4d transparent;scroll-behavior:smooth;justify-content:safe center;justify-self:stretch;gap:8px;width:100%;min-width:0;padding:6px;display:flex;overflow-x:auto}.route-media-lightbox-thumbnails button{color:#fff;opacity:.55;cursor:pointer;background:#ffffff17;border:2px solid #0000;border-radius:10px;flex:0 0 80px;place-items:center;width:80px;height:60px;padding:0;transition:opacity .18s,border-color .18s;display:grid;position:relative;overflow:hidden}.route-media-lightbox-thumbnails button:hover,.route-media-lightbox-thumbnails button[aria-current=true]{opacity:1}.route-media-lightbox-thumbnails button[aria-current=true]{border-color:#fff}.route-media-lightbox-thumbnails img{object-fit:cover;width:100%;height:100%}.route-media-lightbox-play{background:#111614b3;border-radius:50%;place-items:center;width:24px;height:24px;font-size:10px;display:grid;position:absolute}@media (max-width:767px){.route-media-lightbox{padding:max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom))}.route-media-lightbox[open]{gap:12px}.route-media-lightbox-thumbnails button{flex-basis:64px;width:64px;height:48px}}@keyframes lightbox-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.route-detail-contribution,.route-detail-thumb,.route-detail-thumb img,.route-detail-thumb.video>span{transition:none!important;animation:none!important}.route-media-lightbox,.route-media-lightbox *{scroll-behavior:auto;transition:none!important;animation:none!important}}@media (max-width:767px){.public-map-panel .maplibregl-ctrl-bottom-right{bottom:calc(130px + env(safe-area-inset-bottom,0px))}.route-mobile-sheet-grip .route-back-arrow{z-index:2;animation:mobile-route-back-in .22s var(--morph-close-ease) both;margin:0;position:absolute;top:6px;left:12px}.route-mobile-sheet .route-detail-description-text:not(.expanded){-webkit-line-clamp:1}.route-mobile-sheet .route-detail-label{margin-left:0;margin-right:0}.route-mobile-sheet-surface{--route-mobile-sheet-fade:0;border:1px solid #0000}.route-mobile-sheet-surface:before,.route-mobile-sheet-surface:after{content:"";z-index:-2;border-radius:inherit;will-change:opacity;pointer-events:none;border:1px solid;position:absolute;inset:-1px}.route-mobile-sheet-surface:before{opacity:calc(1 - var(--route-mobile-sheet-fade));border-color:#24231f24;box-shadow:0 -12px 40px #24231f29}.route-mobile-sheet-surface:after{opacity:var(--route-mobile-sheet-fade);border-color:#24231f33;box-shadow:0 -16px 48px #24231f3d}.route-mobile-sheet-glass,.route-mobile-sheet-fill{z-index:-1;border-radius:inherit;will-change:opacity;pointer-events:none;position:absolute;inset:0}.route-mobile-sheet-glass{-webkit-backdrop-filter:blur(24px)saturate(1.5);opacity:calc(1 - var(--route-mobile-sheet-fade));background:linear-gradient(135deg,#fffdf88c 0%,#fffdf859 50%,#fffdf880 100%);box-shadow:inset 0 1px #ffffffb3}.route-mobile-sheet-fill{opacity:var(--route-mobile-sheet-fade);background:#fffdf8}}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@keyframes mobile-route-back-in{0%{opacity:0;transform:translateY(4px)scale(.92)}}@media (prefers-reduced-motion:reduce){.route-mobile-sheet-grip .route-back-arrow{animation:none}}.route-desktop-panel{--panel-muted:#66665f;z-index:3;width:384px;color:var(--ink);-webkit-backdrop-filter:blur(40px)saturate(1.35);transition:width var(--morph-open-dur) var(--morph-close-ease), border-radius var(--morph-open-dur) var(--morph-close-ease);background:linear-gradient(155deg,#fffefaf0,#f8f7f3cc 55%,#fffefae0);border:1px solid #ffffffd9;border-radius:28px;display:flex;position:absolute;top:76px;left:20px;overflow:hidden;box-shadow:0 24px 70px -20px #26302d40,0 4px 16px -6px #26302d1f,inset 0 1px #fff}.route-desktop-panel[data-collapsed=true]{width:44px;transition-duration:var(--morph-close-dur);border-radius:22px}.route-desktop-panel-grip{cursor:pointer;width:42px;color:var(--panel-muted);transition:background-color .2s var(--morph-close-ease), color .2s var(--morph-close-ease);background:0 0;border:0;flex-direction:column;flex:none;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.route-desktop-panel-grip:hover{color:var(--ink);background:#ffffff73}.route-desktop-panel-grip:focus-visible{outline:2px solid var(--accent);outline-offset:-5px;border-radius:22px}.route-desktop-panel-handle{width:4px;height:34px;transition:opacity .18s ease, transform .25s var(--morph-close-ease);background:#444c463b;border-radius:999px;display:block}.route-desktop-panel-grip-arrow{opacity:0;transition:opacity .18s ease, transform .25s var(--morph-close-ease);position:absolute;transform:translate(3px)}.route-desktop-panel-grip:is(:hover,:focus-visible) .route-desktop-panel-handle,.route-desktop-panel[data-collapsed=true] .route-desktop-panel-handle{opacity:0;transform:scaleY(.6)}.route-desktop-panel-grip:is(:hover,:focus-visible) .route-desktop-panel-grip-arrow{opacity:1;transform:translate(0)}.route-desktop-panel[data-collapsed=true] .route-desktop-panel-grip-arrow{opacity:1;transform:rotate(180deg)}.route-desktop-panel-grip:active .route-desktop-panel-grip-arrow{scale:.9}.route-desktop-panel-back{width:34px;height:36px;color:var(--ink);cursor:pointer;transition:background-color .2s ease, transform .2s var(--morph-close-ease);background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute;top:23px;left:4px}.route-desktop-panel-back:hover{background:#fffc;transform:translate(-2px)}.route-desktop-panel-back:active{transform:scale(.94)}.route-desktop-panel-back:focus-visible,.route-desktop-panel-route:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.route-desktop-panel-body{scrollbar-width:thin;scrollbar-color:#444c4633 transparent;overscroll-behavior:contain;opacity:1;width:340px;max-height:calc(100dvh - 108px);transition:opacity .2s ease 80ms, transform var(--morph-open-dur) var(--morph-close-ease);flex:none;padding:28px 24px 24px 4px;overflow-y:auto;transform:translate(0)}.route-desktop-panel[data-collapsed=true] .route-desktop-panel-body{pointer-events:none;opacity:0;transition-delay:0s;transform:translate(-8px)}.route-desktop-panel-section+.route-desktop-panel-section{margin-top:28px}.route-desktop-panel-summary{animation:desktop-route-reveal .35s var(--morph-close-ease) both;border-bottom:1px solid #36423b17;padding:0 4px 14px}.route-desktop-panel .route-detail-description{margin-top:14px}.route-desktop-panel .route-detail-description-tabs{margin-bottom:8px}.route-desktop-panel-section:only-child:not(:has(>.route-detail)) .route-desktop-panel-summary{margin-bottom:22px}.route-desktop-panel-eyebrow{color:var(--panel-muted);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;font-size:10px;font-weight:650;display:flex}.route-desktop-panel-eyebrow>span:first-child{flex-shrink:0;align-items:center;gap:7px;display:inline-flex}.route-desktop-panel-country{letter-spacing:.04em;text-align:right;overflow-wrap:anywhere;background:#ffffffa6;border:1px solid #36423b14;border-radius:8px;padding:5px 9px;line-height:1.5}.route-desktop-panel-summary :is(h1,h2),.route-desktop-panel-title{letter-spacing:-.045em;text-wrap:balance;overflow-wrap:anywhere;margin:0;font-size:26px;font-weight:650;line-height:1.16}.route-desktop-panel-meta{color:var(--panel-muted);transition:opacity .22s var(--morph-close-ease);margin:12px 0 0;font-size:12px;line-height:1.5}.route-desktop-panel-summary:has(.route-station-scrubber[data-active=true]) .route-desktop-panel-meta{opacity:.25}.route-station-scrubber{margin-top:24px}.route-station-scrubber-track{cursor:pointer;touch-action:pan-y;border-radius:999px;outline:none;height:14px;margin:0 10px;position:relative}.route-station-scrubber-line{background-image:linear-gradient(90deg,#0000 calc(50% - 1.5px),#444c4630 calc(50% - 1.5px) calc(50% + 1.5px),#0000 calc(50% + 1.5px));background-size:var(--route-station-step,8px) 2px;background-repeat:repeat-x;height:2px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.route-station-scrubber-progress{width:var(--route-live-progress,0%);background:#20c982;border-radius:999px;height:2px;transition:width 1s linear;position:absolute;top:50%;left:0;transform:translateY(-50%)}.route-station-scrubber-nodes{position:absolute;inset:0}.route-station-scrubber-node{width:4px;height:4px;transition:width .24s var(--morph-close-ease), height .24s var(--morph-close-ease), background-color .2s var(--morph-close-ease), box-shadow .24s var(--morph-close-ease);background:#d8d4cc;border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.route-station-scrubber-node[data-passed=true]:not([data-edge]):not([data-active=true]){opacity:0}.route-station-scrubber-node[data-edge=start]{border:2px solid var(--route-color);background:#fffefa;width:10px;height:10px}.route-station-scrubber-node[data-edge=end]{border:2px solid var(--route-color);background:var(--route-color);width:10px;height:10px}.route-station-scrubber-node[data-active=true]{z-index:2;background:var(--route-color);width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb, var(--route-color) 16%, transparent)}.route-station-scrubber-node[data-edge][data-active=true]{width:12px;height:12px;box-shadow:none;background:#fffefa}.route-station-scrubber-track:focus-visible .route-station-scrubber-node[data-active=true]{box-shadow:0 0 0 3px #24231f47}.route-station-scrubber-node[data-current=true]{z-index:2;background:#20c982;width:10px;height:10px;box-shadow:0 0 0 5px #20c9822e}.route-station-scrubber-node[data-edge=end][data-active=true]{background:var(--route-color)}.route-station-scrubber-tooltip{z-index:4;opacity:0;pointer-events:none;transform-origin:50% 100%;transition:opacity .17s var(--morph-close-ease), transform .3s var(--morph-ease);flex-direction:column;align-items:center;display:flex;position:absolute;bottom:calc(50% + 13px);transform:translate(-50%,9px)scale(.94)}.route-station-scrubber-tooltip[data-visible=true]{opacity:1;transform:translate(-50%)scale(1)}.route-station-scrubber-card{-webkit-backdrop-filter:blur(20px)saturate(1.3);background:#fffefaf0;border:1px solid #ffffffe6;border-radius:18px;align-items:center;gap:10px;max-width:248px;padding:7px 16px 7px 7px;display:flex;box-shadow:0 16px 38px -14px #26302d4d,0 1px 3px #26302d0f,inset 0 1px #fff}.route-station-scrubber-badge{border:1px solid color-mix(in srgb, var(--route-color) 14%, transparent);width:34px;height:34px;color:color-mix(in srgb, var(--route-color) 76%, #24342b);background:color-mix(in srgb, var(--route-color) 10%, #fffefa);border-radius:11px;flex:none;place-items:center;display:grid;box-shadow:inset 0 1px #ffffffd9}.route-station-scrubber-copy{flex-direction:column;min-width:0;display:flex}.route-station-scrubber-copy strong{letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:620;line-height:1.3;overflow:hidden}.route-station-scrubber-copy>span{color:var(--panel-muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:1px;font-size:11px;font-weight:500}.route-station-scrubber-caret{bottom:-5px;left:var(--scrubber-caret-x,50%);z-index:-1;background:#fffefaf0;border-bottom:1px solid #ffffffe6;border-right:1px solid #ffffffe6;border-bottom-right-radius:3px;width:12px;height:12px;position:absolute;transform:translate(-50%)rotate(45deg)}.route-station-scrubber-labels{justify-content:space-between;gap:24px;margin-top:9px;font-size:12px;font-weight:550;line-height:1.5;display:flex}.route-station-scrubber-labels>span{overflow-wrap:anywhere;min-width:0;transition:color .2s var(--morph-close-ease)}.route-station-scrubber-labels>span[data-active=true]{color:var(--ink);font-weight:650}.route-station-scrubber-labels>span+span{text-align:right}.route-mobile-sheet .route-station-scrubber{margin-top:18px}.route-mobile-sheet .route-station-scrubber-track{height:32px}.route-mobile-sheet .route-station-scrubber-labels{margin-top:0}.route-schedule{-webkit-backdrop-filter:blur(18px)saturate(1.15);background:#ffffff61;border:1px solid #ffffffe0;border-radius:18px;margin-top:24px;padding:11px 9px 9px 14px;overflow:hidden;box-shadow:inset 0 1px #ffffffb8,0 10px 28px -22px #26302d47}.route-schedule h3{color:#74746f;letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px 1px;font-size:9px;font-weight:650;line-height:1.2}.route-schedule-content{align-items:center;gap:8px;min-width:0;display:flex}.route-schedule-list{overscroll-behavior-x:contain;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;flex:1;grid-auto-columns:100%;grid-auto-flow:column;min-width:0;display:grid;overflow-x:auto}.route-schedule-list::-webkit-scrollbar{display:none}.route-schedule-page{scroll-snap-align:start;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.route-schedule-stop{border-left:1px solid #36423b1c;min-width:0;padding:0 10px}.route-schedule-stop:first-child{border-left:0;padding-left:1px}.route-schedule-stop strong,.route-schedule-stop time{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.route-schedule-stop strong{letter-spacing:-.02em;font-size:12px;font-weight:560;line-height:1.35}.route-schedule-stop time{color:#777873;font-variant-numeric:tabular-nums;margin-top:2px;font-size:11px;font-weight:430;line-height:1.25}.route-schedule-next{color:#747872;cursor:pointer;width:32px;height:32px;transition:color .18s ease, background-color .18s ease, transform .18s var(--morph-close-ease);background:#36423b0b;border:0;border-radius:50%;flex:0 0 32px;place-items:center;padding:0;display:grid}.route-schedule-next:hover{color:var(--ink);background:#36423b14}.route-schedule-next:active{transform:scale(.94)}.route-schedule-next:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.route-mobile-sheet .route-schedule{margin-top:20px}.route-desktop-panel-list-heading{justify-content:space-between;align-items:center;gap:12px;margin:0 4px 14px;display:flex}.route-desktop-panel-list-heading h3{letter-spacing:-.02em;margin:0;font-size:14px;font-weight:650}.route-desktop-panel-list-heading>span{min-width:26px;height:24px;color:var(--panel-muted);font-variant-numeric:tabular-nums;background:#36423b0e;border-radius:8px;place-items:center;padding:0 7px;font-size:11px;font-weight:600;display:grid}.route-desktop-panel-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.route-desktop-panel-list>li{min-width:0;animation:desktop-route-reveal .35s var(--morph-close-ease) both}.route-desktop-panel-list>li:nth-child(2){animation-delay:35ms}.route-desktop-panel-list>li:nth-child(3){animation-delay:70ms}.route-desktop-panel-list>li:nth-child(4){animation-delay:.105s}.route-desktop-panel-list>li:nth-child(n+5){animation-delay:.14s}.route-desktop-panel-route{text-align:left;cursor:pointer;width:100%;min-height:88px;color:inherit;transition:background-color .22s ease, border-color .22s ease, box-shadow .25s ease, transform .25s var(--morph-close-ease);background:#ffffff40;border:1px solid #0000;border-radius:20px;align-items:center;gap:12px;padding:15px 12px;text-decoration:none;display:flex}.route-desktop-panel-route[data-active=true]{background:#ffffffe0;border-color:#fffffff2;box-shadow:0 8px 24px -10px #26302d29,0 1px 3px #26302d09}.route-desktop-panel-route-icon{border:1px solid color-mix(in srgb, var(--route-color) 12%, transparent);height:46px;color:color-mix(in srgb, var(--route-color) 75%, #24342b);background:color-mix(in srgb, var(--route-color) 9%, #fffefa);transition:transform .25s var(--morph-close-ease), background-color .22s ease;border-radius:14px;flex:0 0 42px;place-items:center;display:grid;box-shadow:inset 0 1px #ffffffd9}.route-desktop-panel-route[data-active=true] .route-desktop-panel-route-icon{background:color-mix(in srgb, var(--route-color) 16%, #fffefa)}.route-desktop-panel-route-copy{flex-direction:column;flex:1;gap:7px;min-width:0;display:flex}.route-desktop-panel-route-copy strong{letter-spacing:-.02em;overflow-wrap:anywhere;font-size:14px;font-weight:620;line-height:1.35}.route-desktop-panel-route-copy>span{color:var(--panel-muted);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:11px;line-height:1.4;display:flex}.route-desktop-panel-route-copy>span>span+span{border-left:1px solid #36423b2b;padding-left:8px}.route-desktop-panel-route-arrow{color:#858b83;transition:color .2s ease, transform .25s var(--morph-close-ease);flex:none}.route-desktop-panel-route[data-active=true] .route-desktop-panel-route-arrow{color:var(--ink)}@media (hover:hover){.route-desktop-panel-route:hover{background:#fffc;border-color:#fffffff2;transform:translateY(-2px);box-shadow:0 10px 28px -12px #26302d33}.route-desktop-panel-route:hover .route-desktop-panel-route-icon{transform:scale(1.05)}.route-desktop-panel-route:hover .route-desktop-panel-route-arrow{color:var(--ink);transform:translate(2px)}}.route-desktop-panel-route:active{transition-duration:.1s;transform:scale(.985)}.route-desktop-panel-empty{color:var(--panel-muted);margin:12px 4px;font-size:13px;line-height:1.6}@keyframes desktop-route-reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-transparency:reduce){.route-desktop-panel{-webkit-backdrop-filter:none;background:#f7f7f2}.route-station-scrubber-card,.route-station-scrubber-caret{-webkit-backdrop-filter:none;background:#fffefa}}@media (prefers-reduced-motion:reduce){.route-desktop-panel,.route-desktop-panel *,.route-desktop-panel :before{transition:none!important;animation:none!important}}@media (max-width:767px){.route-desktop-panel{display:none}}
