.action-btn,.detail__btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:block;display:flex;font-size:13px;font-weight:700;justify-content:center;line-height:1;padding:12px;text-align:center;text-decoration:none;width:100%}.detail__btn{margin-bottom:6px}.detail__btn--primary{background:#d2000f;color:#fff}.detail__btn--secondary{background:#f0f0f0;color:#333}.action-btn{flex:1 1;min-width:0;white-space:nowrap}.action-btn--primary{background:#d2000f;color:#fff}.action-btn--secondary{background:#f0f0f0;color:#333}.play-btn-wrap{align-items:center;border:2px solid #f0ebe6;border-radius:.5rem;display:flex;flex:1 1;gap:.5rem;padding:.2rem .5rem;width:100%}.play-btn-wrap__label{flex:1 1;font-size:.875rem;margin:0;text-align:center}.play-btn{background:#0000;border:none;cursor:pointer;flex-shrink:0;height:2.5rem;padding:0;position:relative;width:2.5rem}.play-btn__inner{align-items:center;display:flex;height:100%;justify-content:center;position:relative;width:100%}.play-btn__arc{height:100%;left:0;position:absolute;top:0;width:100%}.play-btn__icon{background-color:currentColor;display:inline-block;flex-shrink:0;height:50%;-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:50%}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Wonder,sans-serif;overflow:hidden}@keyframes spin{to{transform:rotate(1turn)}}.loader-spinner{animation:spin .75s linear infinite;border:3px solid #ffffff2e;border-radius:50%;border-top-color:#fff;flex-shrink:0;height:36px;width:36px}.map-loader{align-items:center;background:#78acc8;display:flex;inset:0;justify-content:center;position:absolute;z-index:20}.tonie-img-overlay img{transition:opacity .2s}@keyframes wave-bob-over{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.app{background:url(../../static/media/wave-under.a6e4aff18086645d4576.svg) repeat,#78acc8;background-size:100px 100px,auto;height:100vh;height:100dvh;overflow:hidden;position:relative}.app:before{animation:wave-bob-over 4s ease-in-out infinite;background:url(../../static/media/wave-over.76a5e2244a96a0537e29.svg) repeat #0000;background-size:100px 100px;content:"";display:block;left:0;pointer-events:none;position:absolute;top:0;z-index:0}.app:before,.app__map{height:100%;width:100%}.app__map{overflow:hidden;position:relative}.map-container{cursor:grab;height:100%;width:100%}.map-container:active{cursor:grabbing}.map-container .react-transform-wrapper{height:100%!important;width:100%!important}.map-inner{display:inline-block;line-height:0;position:relative}.map-image{display:block;max-width:none;pointer-events:none;-webkit-user-select:none;user-select:none}.map-image svg{display:block;height:100%;width:100%}@keyframes wave-drift{0%{transform:translate(0)}20%{transform:translate(-7px,-2px)}45%{transform:translate(-3px,2px)}65%{transform:translate(18px,-2px)}82%{transform:translate(10px,2px)}to{transform:translate(0)}}.waves-overlay{animation:wave-drift 9s ease-in-out infinite;left:0;pointer-events:none;position:absolute;top:0;z-index:2}.waves-overlay svg{display:block;height:100%;width:100%}.waves-overlay svg path{fill:#78acc8!important}.snowflakes-overlay{left:0;pointer-events:none;position:absolute;top:0;z-index:2}.snowflakes-overlay svg{display:block;height:100%;width:100%}.tonie-img-overlay{cursor:pointer;min-height:auto;position:absolute;transform:translate(-50%,-50%);width:107px}.tonie-img-overlay .loader-spinner{inset:0;margin:auto;position:absolute}.tonie-img-overlay img{display:block;height:auto;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%}.tonie-img-overlay.hovered img,.tonie-img-overlay.selected img{filter:brightness(1.08) drop-shadow(0 4px 12px rgba(0,0,0,.35))}.tonie-info-btn{align-items:center;background:#fff;border:none;border-radius:50%;bottom:-5px;box-shadow:0 1px 6px #00000059;color:#333;cursor:pointer;display:flex;font-size:13px;font-style:italic;font-weight:700;height:26px;justify-content:center;left:50%;line-height:1;pointer-events:auto;position:absolute;transform:translateX(-50%) scale(1.8);transition:transform .35s ease;width:26px}.zoom-1 .tonie-info-btn{transform:translateX(-50%) scale(1.4)}.zoom-2 .tonie-info-btn{transform:translateX(-50%) scale(.85)}.zoom-3 .tonie-info-btn{transform:translateX(-50%) scale(.55)}.zoom-4 .tonie-info-btn{transform:translateX(-50%) scale(.3)}@media(orientation:portrait){.tonie-info-btn{transform:translateX(-50%) scale(3)}.zoom-1 .tonie-info-btn{transform:translateX(-50%) scale(1.8)}.zoom-2 .tonie-info-btn{transform:translateX(-50%) scale(1.1)}.zoom-3 .tonie-info-btn{transform:translateX(-50%) scale(.7)}.zoom-4 .tonie-info-btn{transform:translateX(-50%) scale(.4)}}.tonie-info-btn.active,.tonie-info-btn:hover{background:#d2000f;color:#fff}.tonie-btn-overlay{pointer-events:none;position:absolute;transform:translate(-50%,-50%);width:107px;z-index:3}.tonie-btn-overlay img{display:block;height:auto;visibility:hidden;width:100%}.zoom-controls{bottom:calc(24px + env(safe-area-inset-bottom, 0px));display:flex;flex-direction:column;gap:2px;position:fixed;right:16px;z-index:10}.zoom-btn{align-items:center;background:#fff;border:none;border-radius:8px;box-shadow:0 2px 8px #00000040;color:#333;cursor:pointer;display:flex;font-size:22px;font-weight:300;height:40px;justify-content:center;line-height:1;width:40px}.zoom-btn:hover{background:#f5f5f5}.zoom-btn:active{background:#eee;transform:scale(.95)}.char-marker,.subworld-marker,.world-marker{align-items:center;border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #00000080;cursor:pointer;display:flex;justify-content:center;padding:0;transform:scale(1.8);transform-origin:top center;transition:transform .35s ease,width .2s,height .2s,box-shadow .2s;z-index:4}.zoom-1 .char-marker,.zoom-1 .subworld-marker,.zoom-1 .world-marker{transform:scale(1.4)}.zoom-2 .char-marker,.zoom-2 .subworld-marker,.zoom-2 .world-marker{transform:scale(.85)}.zoom-3 .char-marker,.zoom-3 .subworld-marker,.zoom-3 .world-marker{transform:scale(.55)}.zoom-4 .char-marker,.zoom-4 .subworld-marker,.zoom-4 .world-marker{transform:scale(.3)}@media(orientation:portrait){.char-marker,.subworld-marker,.world-marker{transform:scale(3)}.zoom-1 .char-marker,.zoom-1 .subworld-marker,.zoom-1 .world-marker{transform:scale(1.8)}.zoom-2 .char-marker,.zoom-2 .subworld-marker,.zoom-2 .world-marker{transform:scale(1.1)}.zoom-3 .char-marker,.zoom-3 .subworld-marker,.zoom-3 .world-marker{transform:scale(.7)}.zoom-4 .char-marker,.zoom-4 .subworld-marker,.zoom-4 .world-marker{transform:scale(.4)}}.char-marker:hover,.subworld-marker:hover,.world-marker:hover{box-shadow:0 0 0 3px #fff6,0 2px 8px #00000080}.marker-count{color:#fff;font-size:10px;font-weight:800;line-height:1;pointer-events:none;-webkit-user-select:none;user-select:none}.char-marker,.subworld-marker,.world-marker{height:26px;width:26px}.char-marker.active,.subworld-marker.active,.world-marker.active{display:none}.marker-group{align-items:center;display:flex;height:26px;justify-content:center;position:absolute;transform:translate(-50%,-50%);width:26px}.marker-label{color:#000;font-family:Wonder,sans-serif;font-size:2rem;font-weight:700;left:50%;line-height:1;pointer-events:none;position:absolute;text-align:center;transform:translateX(-50%);white-space:nowrap}.marker-label.active{cursor:pointer;pointer-events:auto}.marker-label{bottom:31px;font-size:22px}.marker-label.zoom-1{opacity:.8}.marker-label.zoom-2{opacity:.6}.marker-label.zoom-3{opacity:.4}.marker-label.zoom-4{opacity:.2}.marker-label.trunk{font-size:13px}.marker-label.trunk.zoom-1{opacity:1}.marker-label.trunk.zoom-2{opacity:.8}.marker-label.trunk.zoom-3{opacity:.6}.marker-label.trunk.zoom-4{opacity:.4}.marker-label.branch{font-size:12px;opacity:1!important}.marker-label.leaf{font-size:15px}@media(orientation:portrait){.marker-label{font-size:22px}.marker-label.trunk{font-size:13px}.marker-label.branch{font-size:12px}.marker-label.leaf{font-size:15px}}.side-panel{background:#fff;box-shadow:4px 0 24px #0000002e;display:flex;flex-direction:column;height:100vh;left:0;overflow-y:auto;position:fixed;top:0;width:280px;z-index:50}.side-panel__header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:20px 16px 16px}.side-panel__logo-img{height:28px;width:auto}.side-panel__close{align-items:center;background:#f0f0f0;border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;font-size:11px;height:28px;justify-content:center;width:28px}.side-panel__detail{display:flex;flex-direction:column;gap:6px;padding:20px 16px}.chips{background:linear-gradient(#00000080,#0000);display:flex;gap:8px;left:0;overflow-x:auto;padding:16px 12px;position:absolute;right:0;top:0;transition:padding-left .35s cubic-bezier(.4,0,.2,1)}.chips.panel-open{padding-left:292px}.chips::-webkit-scrollbar{display:none}.age-filter{flex-shrink:0;position:relative}.age-filter select{appearance:none;-webkit-appearance:none;background:#0000008c;border:2px solid #0000;border-radius:20px;box-shadow:0 2px 8px #00000059;color:#fff;cursor:pointer;font-family:inherit;font-size:12px;font-weight:700;padding:8px 26px 8px 14px;white-space:nowrap}.age-filter select.active{background:#000000bf;border-color:#fff}.age-filter:after{color:#fff;content:"▾";font-size:10px;pointer-events:none;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.chip{border:2px solid #0000;border-radius:20px;box-shadow:0 2px 8px #00000059;color:#fff;cursor:pointer;flex-shrink:0;font-size:12px;font-weight:700;padding:8px 16px;transition:border-color .15s;white-space:nowrap}.chip.active{border-color:#fff}.bottom-sheet{background:#fff;border-radius:20px 20px 0 0;bottom:0;box-shadow:0 -4px 24px #0000002e;left:0;padding:16px 20px calc(36px + env(safe-area-inset-bottom, 0px));position:fixed;right:0;z-index:100}.bottom-sheet__handle{background:#ddd;border-radius:2px;height:4px;margin:0 auto 20px;width:36px}.bottom-sheet__close{align-items:center;background:#f0f0f0;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:11px;height:28px;justify-content:center;position:absolute;right:16px;top:16px;width:28px}.bottom-sheet__world{font-size:10px;font-weight:700;letter-spacing:1px;margin-bottom:4px;text-transform:uppercase}.bottom-sheet__name{color:#222;font-size:20px;font-weight:700;line-height:1.3;margin-bottom:4px}.bottom-sheet__age{color:#888;font-size:13px;margin-bottom:20px}.bottom-sheet__actions{display:flex;gap:10px}