:root{--color-teal:#26c6c6;--color-white:#fff;--color-text:#333;--color-text-light:#888;--color-border:#e0e0e0;--color-overlay:rgba(0,0,0,.5);--transition-smart:0.3s ease-out;--header-pad:20px;--footer-height:40px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--ease-out-quint:cubic-bezier(0.22,1,0.36,1);--ease-out-back:cubic-bezier(0.34,1.3,0.64,1);--ease-in-sharp:cubic-bezier(0.55,0,1,0.45);--ease-smooth:cubic-bezier(0.4,0,0.2,1)}.visually-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#app-header{align-items:flex-start;display:flex;justify-content:space-between;left:0;padding:20px;padding:var(--header-pad);position:absolute;right:0;top:0}#app-header,#logo{pointer-events:none}#logo{transform-origin:top left;z-index:15}#logo,#menu-btn{position:relative}#menu-btn{margin-left:auto;z-index:25}#logo img{display:block;height:48px;width:auto}@media(max-width:1023px){#app #logo.logo--center{left:50%;position:fixed;top:50%;transform:translate(-50%,-50%) scale(1.4);z-index:50}#app #logo.logo--animating{transition:transform .7s ease-out,top .7s ease-out,left .7s ease-out}#app #logo.logo--small{left:50%;position:absolute;top:82px;transform:translateX(-50%)}#app #logo img{height:auto;width:244px}}@media(min-width:1024px){#app #logo{order:-1}#app #logo img{height:64px}}@media(prefers-reduced-motion:reduce){#logo.logo--animating{transition:none}}#menu-btn{align-items:center;background:#fff;border:1px solid #dfdfdf;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;flex-shrink:0;gap:4px;height:60px;justify-content:center;pointer-events:auto;width:60px}#menu-btn:focus-visible{outline:2px solid #26c6c6;outline:2px solid var(--color-teal);outline-offset:2px}.menu-btn__label{display:none}.menu-btn__icon{display:flex;flex-direction:column;gap:6px}.menu-btn__icon span{border-radius:1px;display:block;height:3px;width:30px}.menu-btn__icon span:first-child{background:linear-gradient(135deg,#f9f,#fff130 53.4%,#3ed9d4 98.1%)}.menu-btn__icon span:last-child{background:linear-gradient(135deg,#f9f,#fff130 40.5%,#3ed9d4 98.1%)}#menu-overlay{background:rgba(0,0,0,.5);background:var(--color-overlay);inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .35s cubic-bezier(.4,0,.2,1);transition:opacity .35s var(--ease-smooth);z-index:30}#menu-overlay.menu-overlay--visible{opacity:1;pointer-events:auto;touch-action:none}#menu-panel{background:#fff;background:var(--color-white);display:flex;flex-direction:column;gap:50px;height:100%;padding:30px;position:absolute;right:0;top:0;transform:translateX(100%);transition:transform .4s cubic-bezier(.22,1,.36,1);transition:transform .4s var(--ease-out-quint);width:min(320px,85vw);z-index:31}#menu-panel.menu-panel--open{transform:translateX(0)}#menu-panel:focus,#menu-panel:focus-visible{outline:none}.menu-panel__header{justify-content:space-between}.menu-panel__header,.menu-panel__title{align-items:center;display:flex}.menu-panel__logo{display:block;height:auto;width:170px}.menu-panel__close{align-items:center;background:#fff;background:var(--color-white);border:none;border-radius:10px;cursor:pointer;display:flex;flex-shrink:0;height:60px;justify-content:center;width:60px}.menu-panel__close:focus-visible{outline:2px solid #26c6c6;outline:2px solid var(--color-teal);outline-offset:2px}.menu-panel__container{display:flex;flex:1;flex-direction:column;justify-content:space-between;min-height:0}.menu-panel__nav{display:flex;flex-direction:column;gap:20px}.menu-panel__link{align-items:center;color:#45433e;display:flex;font-size:14px;gap:20px;letter-spacing:.03em;text-decoration:none}.menu-panel__link:focus-visible{outline:2px solid #26c6c6;outline:2px solid var(--color-teal);outline-offset:2px}.menu-panel__link svg{flex-shrink:0}.menu-panel__banner{display:flex;flex-direction:column;gap:15px}.menu-panel__banner-link{align-items:center;border:1px solid #d3d2cf;color:#45433e;display:flex;height:60px;justify-content:center;position:relative;text-decoration:none}.menu-panel__banner-link img{height:100%;width:auto}.menu-panel__banner-link:focus-visible{outline:2px solid #26c6c6;outline:2px solid var(--color-teal);outline-offset:2px}.menu-panel__banner-link svg{position:absolute;right:10px}.menu-panel__banner-desc{color:#45433e;font-size:14px;font-weight:400;line-height:1.5}.menu-panel__banner-desc small{display:block;font-size:12px;line-height:1.5;margin-top:5px}@media(prefers-reduced-motion:reduce){#menu-overlay,#menu-panel{transition:none}}#howto{backdrop-filter:blur(4px);background:hsla(0,0%,100%,.85);border-radius:12px;display:flex;gap:32px;left:50%;padding:16px 24px;pointer-events:none;position:absolute;top:50%;transition:opacity .5s cubic-bezier(.4,0,.2,1);transition:opacity .5s var(--ease-smooth);translate:-50% -50%;z-index:15}.howto__item{align-items:center;display:flex;flex-direction:column;gap:10px;min-width:84px}.howto__item span{color:#45433e;font-size:12px;letter-spacing:.05em;line-height:1.5;text-align:center;white-space:nowrap}.howto__icon{height:70px;opacity:1;width:auto}#howto.howto--gone{opacity:0;pointer-events:none}@media(min-width:1024px){#howto{gap:30px;padding:20px 32px}.howto__icon{height:60px;opacity:1;width:auto}.howto__item{gap:5px;min-width:96px}.howto__item span{color:#45433e;font-size:12px;white-space:normal}}@media(prefers-reduced-motion:reduce){#howto{transition:none}}#app-footer{align-items:center;background:#4b4b4b;display:flex;flex-shrink:0;justify-content:center;z-index:25}#app-footer:after{background:#4b4b4b;bottom:0;content:"";display:block;height:env(safe-area-inset-bottom,0);left:0;position:fixed;right:0;z-index:25}.footer__copy{color:#fff;font-size:10px;padding:20px 0;text-align:center}@media(min-width:1024px){:root{--footer-height:50px}#app{display:block}#map-container{bottom:40px;bottom:var(--footer-height);flex:none;top:0}#app-footer,#map-container{left:0;position:absolute;right:0}#app-footer{bottom:0;height:40px;height:var(--footer-height);padding:0 40px}#app-footer:after{display:none}}
