/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.block{display:block}.contents{display:contents}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.overflow-hidden{overflow:hidden}.p-0{padding:calc(var(--spacing)*0)}.font-sans{font-family:var(--font-sans)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}}:root{--brand-blue:#2c3e50;--brand-blue-dark:#3a6ea5;--success:#4caf50;--warning:#e5533d;--marker-default:#1f6f8b;--marker-special:#e76f51;--marker-planned:#6b8e6e;--marker-muted:#9aa0a6;--bg-offwhite:#f6f7f5;--bg-sand:#ece9e3;--bg-mist:#d6d8d5;--text-900:#1e1e1e;--text-700:#5f6368;--text-600:#5f6368;--text-500:#9aa0a6;--text-on-dark:#f2f2f2;--glass-bg:#f6f7f5c7;--glass-border:#ece9e3b3;--panel-shadow:0 20px 40px #1e1e1e1f;--panel-width:280px;--panel-offset:20px}*,:before,:after{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden}body{color:var(--text-900);background:radial-gradient(circle at 15% 0%,#d6d8d573,transparent 45%),linear-gradient(135deg,var(--bg-offwhite)0%,var(--bg-sand)50%,var(--bg-offwhite)100%);flex-direction:column;font-family:Inter,Segoe UI,system-ui,sans-serif;display:flex}.app-content{flex:1;display:flex;position:relative;overflow:hidden}.map-container{background:var(--bg-offwhite);flex:1;height:100%;position:relative}.map-container:after{content:"Roamly";z-index:800;letter-spacing:.14em;text-transform:uppercase;color:#1e1e1e59;pointer-events:none;background:#f6f7f5bf;border:1px solid #ece9e3cc;border-radius:999px;padding:.25rem .6rem;font-size:.7rem;font-weight:600;position:absolute;top:14px;right:18px}.floating-island{z-index:1200;background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;border-radius:999px;padding:.5rem 1.25rem;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 12px 24px #0f172a24}.floating-island-text{color:var(--text-700);letter-spacing:.01em;margin:0;font-size:.875rem;font-weight:500}.destination-marker{width:44px;height:44px;color:var(--marker-color,var(--marker-default));place-items:center;display:grid;position:relative}.destination-marker__pulse{opacity:.6;border:1px solid;border-radius:50%;animation:2.4s ease-out infinite markerPulse;position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}.destination-marker__ring{background:#f6f7f5f0;border:2px solid;border-radius:50%;position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:0 10px 24px #0f172a33}.destination-marker__icon{z-index:1;justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:relative}.destination-marker .vehicle-icon-svg{filter:drop-shadow(0 2px 4px #0f172a40);width:18px;height:18px}.leaflet-marker-icon.destination-marker-wrapper{background:0 0;border:none}.leaflet-tooltip.destination-tooltip{border:1px solid var(--glass-border);color:var(--text-900);pointer-events:none;background:#f6f7f5f5;border-radius:8px;padding:.35rem .55rem;font-size:.75rem;font-weight:600;box-shadow:0 8px 16px #0f172a2e}.leaflet-tooltip.destination-tooltip.leaflet-tooltip-top:before{border-top-color:#f6f7f5f5}.leaflet-tooltip.destination-tooltip.leaflet-tooltip-bottom:before{border-bottom-color:#f6f7f5f5}.leaflet-tooltip.destination-tooltip.leaflet-tooltip-left:before{border-left-color:#f6f7f5f5}.leaflet-tooltip.destination-tooltip.leaflet-tooltip-right:before{border-right-color:#f6f7f5f5}@keyframes markerPulse{0%{opacity:.7;transform:scale(.9)}70%{opacity:0;transform:scale(1.25)}to{opacity:0;transform:scale(1.25)}}.vehicle-container{justify-content:center;align-items:center;display:flex;transition:none!important}.vehicle-icon-svg{filter:drop-shadow(0 2px 4px #0000004d);will-change:transform;transition:transform .1s linear}@keyframes landing{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}.vehicle-landing{animation:.5s forwards landing}.details-card{z-index:2000;background:var(--bg-offwhite);border-radius:15px;width:90%;max-width:400px;animation:.35s ease-out slideUp;display:none;position:fixed;bottom:20px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 10px 25px #0003}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,24px)}to{opacity:1;transform:translate(-50%)}}.dest-image{background-position:50%;background-size:cover;background-color:var(--bg-mist);height:192px;color:inherit;text-decoration:none;display:block;position:relative}.dest-image:before{content:"";opacity:0;background:linear-gradient(#0f172a14,#0f172a47);transition:opacity .2s;position:absolute;top:0;right:0;bottom:0;left:0}.dest-image-play{opacity:0;pointer-events:none;place-items:center;transition:opacity .2s,transform .2s;display:grid;position:absolute;top:0;right:0;bottom:0;left:0}.dest-image-play-icon{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f6f7f559;border:1px solid #ffffffb3;border-radius:999px;place-items:center;width:56px;height:56px;transition:transform .2s,background .2s;display:grid;box-shadow:0 12px 28px #0f172a38}.dest-image-play-icon:before{content:"";border-top:9px solid #0000;border-bottom:9px solid #0000;border-left:14px solid #1e1e1ecc;width:0;height:0;margin-left:4px}.dest-image--video{cursor:pointer}.dest-image--video:before,.dest-image--video .dest-image-play{opacity:1}.dest-image--video:hover .dest-image-play-icon{background:#f6f7f580;transform:scale(1.06)}.dest-image--video:focus-visible{outline:2px solid var(--brand-blue);outline-offset:-2px}.details-content{padding:1.5rem}.dest-title{color:var(--text-900);margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.dest-date{color:var(--brand-blue-dark);margin:0 0 .75rem;font-size:.875rem;font-weight:600}.dest-description{color:var(--text-700);margin:0;line-height:1.625}.close-button{background-color:var(--brand-blue);width:100%;color:var(--text-on-dark);cursor:pointer;border:none;border-radius:.5rem;margin-top:1.5rem;padding:.5rem 1rem;font-weight:500;transition:background-color .2s}.close-button:hover{background-color:var(--brand-blue-dark)}.close-button:focus{outline:2px solid var(--brand-blue);outline-offset:2px}.overlay{z-index:1500;background:#0000004d;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.filter-panel{top:var(--panel-offset);left:var(--panel-offset);width:var(--panel-width);background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);height:calc(100% - 40px);max-height:calc(100% - 40px);box-shadow:var(--panel-shadow);z-index:1100;border-radius:24px;padding:1.5rem;font-family:Outfit,Inter,sans-serif;transition:max-height .35s,padding .35s;position:absolute;overflow-y:auto}.filter-panel.collapsed{max-height:84px;padding-bottom:.75rem;overflow:hidden}.toggle-filter-btn{top:calc(var(--panel-offset) + 24px);left:calc(var(--panel-offset) + var(--panel-width) - 10px);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-border);cursor:pointer;width:34px;height:52px;color:var(--text-700);z-index:1001;pointer-events:auto;background:#f6f7f5e6;border-left:none;border-radius:0 14px 14px 0;justify-content:center;align-items:center;font-size:.875rem;transition:left .3s,background-color .2s,color .2s;display:flex;position:absolute;box-shadow:0 8px 16px #0f172a26}.filter-panel.collapsed~.toggle-filter-btn{left:calc(var(--panel-offset) + var(--panel-width) - 10px)}.toggle-filter-btn:hover{background:var(--bg-offwhite);color:var(--brand-blue)}.toggle-filter-btn:focus-visible{outline:2px solid var(--brand-blue);outline-offset:2px}.filter-title{color:var(--text-900);margin:0 0 1rem;font-size:1.125rem;font-weight:600}.filter-content{transform-origin:top;transition:opacity .25s,transform .25s}.filter-panel.collapsed .filter-content{opacity:0;pointer-events:none;transform:translateY(-6px)}.filter-section-title{color:var(--text-700);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .75rem;font-size:.75rem;font-weight:600}.filter-checkboxes{flex-direction:column;gap:.6rem;margin-bottom:1.25rem;display:flex}.filter-checkbox{align-items:center;display:flex;position:relative}.filter-checkbox-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.filter-checkbox-label{color:var(--text-700);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding-left:52px;font-size:.875rem;transition:color .2s;position:relative}.filter-checkbox-label:before{content:"";background:#d6d8d580;border:1px solid #d6d8d5b3;border-radius:999px;width:40px;height:22px;transition:background-color .2s,border-color .2s,box-shadow .2s;position:absolute;top:50%;left:0;transform:translateY(-50%)}.filter-checkbox-label:after{content:"";background:var(--bg-offwhite);border-radius:50%;width:16px;height:16px;transition:transform .2s,background-color .2s;position:absolute;top:50%;left:3px;transform:translateY(-50%);box-shadow:0 2px 6px #0f172a33}.filter-checkbox-label:hover{color:var(--text-900)}.filter-checkbox-input:checked+.filter-checkbox-label{color:var(--text-900);font-weight:600}.filter-checkbox-input:checked+.filter-checkbox-label:before{background:var(--brand-blue);border-color:#0000;box-shadow:0 0 0 3px #3a6ea540}.filter-checkbox-input:checked+.filter-checkbox-label:after{background:var(--bg-offwhite);transform:translate(18px,-50%)}.filter-checkbox-input:focus-visible+.filter-checkbox-label:before{outline:2px solid var(--brand-blue);outline-offset:2px}.reset-filters-btn{background-color:var(--glass-bg);width:100%;color:var(--text-700);border:1px solid var(--glass-border);cursor:pointer;border-radius:12px;padding:.625rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .2s,color .2s,border-color .2s}.reset-filters-btn:hover{background-color:var(--bg-offwhite);color:var(--text-900);border-color:#d6d8d5e6}.reset-filters-btn:focus{outline:2px solid var(--brand-blue);outline-offset:2px}.info-badge{z-index:1200;position:fixed;bottom:16px;right:16px}.info-button{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:36px;height:36px;color:var(--text-700);cursor:pointer;background:#f6f7f5e6;border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;font-weight:600;list-style:none;display:flex;box-shadow:0 8px 16px #0f172a29}.info-button::-webkit-details-marker{display:none}.info-button:focus-visible{outline:2px solid var(--brand-blue);outline-offset:2px}.info-badge[open] .info-button{color:var(--brand-blue)}.info-panel{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;min-width:220px;margin-top:.5rem;padding:.75rem .9rem;box-shadow:0 12px 24px #0f172a26}.info-text{color:var(--text-700);margin:0;font-size:.75rem;line-height:1.4}.info-link{color:var(--brand-blue);font-weight:600;text-decoration:none}.info-link:hover{color:var(--brand-blue-dark);text-decoration:underline}.leaflet-popup-content-wrapper{animation:.25s ease-out popupIn}@keyframes popupIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){:root{--panel-width:250px;--panel-offset:12px}.filter-panel{height:calc(100% - 24px);max-height:calc(100% - 24px)}.filter-panel.collapsed{max-height:80px}.toggle-filter-btn{top:var(--panel-offset);left:calc(var(--panel-offset) + var(--panel-width) - 10px)}.filter-panel.collapsed~.toggle-filter-btn{left:calc(var(--panel-offset) + var(--panel-width) - 10px)}.floating-island{padding:.45rem 1rem;top:10px}.floating-island-text{font-size:.75rem}.details-card{width:95%;bottom:10px}.dest-image{height:160px}.details-content{padding:1rem}.dest-title{font-size:1.25rem}.filter-title{font-size:1rem}.filter-section-title{font-size:.7rem}.filter-checkbox-label{font-size:.8125rem}.info-badge{bottom:12px;right:12px}}@media (prefers-reduced-motion:reduce){.vehicle-icon-svg,.details-card,.destination-marker__pulse,.leaflet-popup-content-wrapper,.close-button{transition:none;animation:none}}@media (prefers-contrast:high){.details-card,.close-button{border:2px solid #000}}.video-modal{z-index:3000;justify-content:center;align-items:center;width:100%;height:100%;animation:.3s ease-out videoModalFadeIn;display:none;position:fixed;top:0;left:0}.video-modal.active{display:flex}@keyframes videoModalFadeIn{0%{opacity:0}to{opacity:1}}.video-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;width:100%;height:100%;position:absolute;top:0;left:0}.video-modal-content{background:var(--bg-offwhite);border-radius:20px;width:90%;max-width:900px;animation:.35s ease-out videoModalSlideIn;position:relative;overflow:hidden;box-shadow:0 25px 50px #0000004d}@keyframes videoModalSlideIn{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.video-modal-close{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;width:40px;height:40px;color:var(--text-700);z-index:10;background:#f6f7f5e6;border-radius:50%;justify-content:center;align-items:center;transition:background-color .2s,color .2s,transform .2s;display:flex;position:absolute;top:12px;right:12px}.video-modal-close:hover{background:var(--bg-offwhite);color:var(--text-900);transform:scale(1.05)}.video-modal-close:focus{outline:2px solid var(--brand-blue);outline-offset:2px}.video-modal-video-container{background:#000;width:100%;padding-top:56.25%;position:relative}.video-frame{border:none;width:100%;height:100%;position:absolute;top:0;left:0}.video-modal-info{padding:1.25rem 1.5rem}.video-modal-title{color:var(--text-900);margin:0;font-size:1.125rem;font-weight:600}@media (max-width:640px){.video-modal-content{width:95%;max-width:none}.video-modal-info{padding:1rem}.video-modal-title{font-size:1rem}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
