.od-page{min-height:100dvh;background:radial-gradient(circle at 12% 8%,rgba(129,230,217,.28),transparent 36%),radial-gradient(circle at 88% 12%,rgba(255,182,193,.32),transparent 38%),linear-gradient(180deg,#f7fffd,#fff9f5 52%,#fef6fb);color:#334155;padding-bottom:4rem}.od-topbar{display:flex;align-items:center;gap:.9rem;max-width:1200px;margin:0 auto;padding:max(.9rem,env(safe-area-inset-top)) 1rem .75rem}.od-title-wrap{flex:1;min-width:0}.od-eyebrow{font-size:.76rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#0d9488}.od-main-title{font-size:clamp(1.25rem,2.6vw,1.85rem);font-weight:900;color:#4a2c5a;line-height:1.18}.od-progress-pill{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;background:#fff;border:2px solid #b2f5ea;border-radius:18px;padding:.45rem .85rem;box-shadow:0 4px 14px rgba(13,148,136,.1)}.od-progress-label{font-size:.82rem;font-weight:800;color:#0f766e;white-space:nowrap}.od-progress-bar{width:112px;height:8px;border-radius:999px;background:#e6fffa;overflow:hidden}.od-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#ff69b4,#38b2ac);transition:width .5s ease}.od-hub-shell{max-width:1200px;margin:0 auto;padding:.25rem 1rem 0}.od-intro-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;background:hsla(0,0%,100%,.88);backdrop-filter:blur(8px);border:2px solid #fce7f3;border-radius:22px;padding:.85rem 1.15rem;margin-bottom:.9rem;box-shadow:0 8px 24px rgba(139,74,127,.06)}.od-map-frame{position:relative;width:100%;height:clamp(440px,64dvh,640px);border-radius:26px;overflow:hidden;border:4px solid #fff;box-shadow:0 18px 40px rgba(45,55,72,.12),0 0 0 2px #b2f5ea;background:#e6f4f1}.od-map-canvas{width:100%;height:100%;z-index:1}.od-leaflet-pin-wrapper{background:transparent!important;border:none!important}.od-station-pin{position:relative;width:148px;display:flex;flex-direction:column;align-items:center;cursor:pointer;border:none;background:transparent;padding:0;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.od-station-pin.is-active,.od-station-pin:hover{transform:translateY(-4px) scale(1.07)}.od-pin-head{position:relative;width:62px;height:62px;display:flex;align-items:center;justify-content:center}.od-pin-pulse{position:absolute;inset:0;border-radius:999px;background:rgba(255,92,168,.32);animation:od-pulse 2.2s ease-out infinite;pointer-events:none}@keyframes od-pulse{0%{transform:scale(.85);opacity:.85}to{transform:scale(1.55);opacity:0}}.od-pin-photo{position:relative;width:60px;height:60px;border-radius:999px;border:3.5px solid #fff;background:linear-gradient(135deg,#ff5ca8,#ff8fab);box-shadow:0 8px 20px rgba(213,63,140,.4);overflow:hidden;display:block}.od-pin-photo img{width:100%;height:100%;object-fit:cover;display:block}.od-pin-badge{position:absolute;top:-5px;right:-8px;z-index:3;background:#0d9488;color:#fff;font-size:.72rem;line-height:1;font-weight:900;padding:.22rem .44rem;border-radius:999px;border:2px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.22)}.od-pin-stem{width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:12px solid #ff5ca8;margin-top:-2px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.18))}.od-pin-caption{margin-top:3px;background:hsla(0,0%,100%,.96);color:#4a2c5a;font-size:.74rem;font-weight:800;padding:.16rem .58rem;border-radius:999px;border:1.5px solid #fbcfe8;box-shadow:0 3px 10px rgba(0,0,0,.14);white-space:nowrap}.od-preview-card{position:absolute;left:1rem;bottom:1rem;z-index:1000;width:min(360px,calc(100% - 2rem));background:hsla(0,0%,100%,.98);backdrop-filter:blur(12px);border-radius:22px;border:2.5px solid #fbcfe8;box-shadow:0 20px 44px rgba(30,41,59,.24);overflow:hidden;animation:od-pop-in .24s cubic-bezier(.16,1,.3,1)}@media (min-width:768px){.od-preview-card{left:auto;right:1.15rem;top:1.15rem;bottom:auto}}@keyframes od-pop-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.od-map-controls-bar{position:absolute;top:.85rem;left:.85rem;z-index:1000;display:flex;flex-wrap:wrap;gap:.5rem}.od-map-chip-btn{display:inline-flex;align-items:center;gap:.35rem;background:hsla(0,0%,100%,.95);backdrop-filter:blur(8px);border:2px solid #ccfbf1;color:#0f766e;font-size:.78rem;font-weight:800;padding:.42rem .78rem;border-radius:999px;box-shadow:0 4px 12px rgba(15,23,42,.12);cursor:pointer;transition:transform .15s ease,background .15s ease}.od-map-chip-btn:hover{background:#f0fdfa;transform:translateY(-1px)}.od-embla{overflow:hidden;border-radius:24px;background:#0f172a}.od-embla-container{display:flex}.od-embla-slide{flex:0 0 100%;min-width:0;position:relative}@media (prefers-reduced-motion:reduce){.od-pin-pulse{animation:none}}