
.djd-map{--night:#0F0E1A;--night2:#161523;--night3:#1D1C2E;--panel:#1B1934;--ink:#F5F0E8;--dim:#A8A4B8;--mint:#5EE9C5;--gold:#FFC93C;--pink:#FF3366;--line:rgba(245,240,232,.09);
  font-family:'Inter',system-ui,sans-serif;color:var(--ink);background:var(--night);border-radius:22px;padding:28px;box-sizing:border-box;max-width:1360px;margin:0 auto}
.djd-map *{box-sizing:border-box}
.djd-map h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;letter-spacing:-.035em;line-height:1.02;font-size:clamp(34px,5vw,58px);margin:0 0 10px;color:var(--ink)}
.djd-map h2 em{font-style:normal;color:var(--gold)}
.djd-map .eyebrow{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--mint);margin-bottom:10px}
.djd-map .lede{margin:0 0 20px;max-width:760px;font-size:18px;line-height:1.55;color:var(--dim)}
.djd-map .bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.djd-map .bar+.bar{margin-bottom:10px}
.djd-map .tools{margin-bottom:18px}
.djd-map button{font-family:'Bricolage Grotesque',sans-serif;cursor:pointer}
.djd-map .chip{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid #3A3852;background:transparent;color:var(--ink);font-size:14px;font-weight:700}
.djd-map .chip[aria-pressed="true"]{background:var(--mint);border-color:var(--mint);color:var(--night)}
.djd-map .chip.dist[aria-pressed="true"]{background:var(--gold);border-color:var(--gold)}
.djd-map .chip.tool[aria-pressed="true"]{background:transparent;border-color:var(--mint);color:var(--mint)}
.djd-map .chip.go{border-color:var(--pink);color:var(--pink)}
.djd-map .chip small{font-weight:500;opacity:.75;margin-left:6px}
.djd-map .grid{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start}
.djd-map .mapwrap{flex:1 1 760px;min-width:0;position:relative;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#0B0A14}
.djd-map svg.map{display:block;width:100%;height:auto;aspect-ratio:1200/985;touch-action:none;cursor:grab}
.djd-map svg.map.drag{cursor:grabbing}
.djd-map .gu{fill:#161523;stroke:rgba(245,240,232,.08);stroke-width:1;vector-effect:non-scaling-stroke}
.djd-map .river1{fill:none;stroke:#5EE9C5;stroke-opacity:.2;stroke-linecap:round;filter:url(#djdBlur)}
.djd-map .river2{fill:none;stroke:#0B0A14;stroke-linecap:round}
.djd-map .river3{fill:none;stroke:#5EE9C5;stroke-opacity:.45;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-width:1.5}
.djd-map .ln{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-width:2.4px}
.djd-map .pin,.djd-map .place{cursor:pointer;outline:none}
.djd-map .pin:focus-visible .dot,.djd-map .place:focus-visible .stn{stroke:#fff;stroke-width:2}
.djd-map .dot{r:var(--r)}
.djd-map .halo{r:calc(var(--r)*3.4);pointer-events:none}
.djd-map .ring{r:calc(var(--r)*1.6);fill:none;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none;transform-box:fill-box;transform-origin:center;animation:djdPulse 2.2s ease-out infinite}
.djd-map .sel{r:calc(var(--r)*2.2);fill:none;stroke:#F5F0E8;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}
.djd-map .stn{r:calc(var(--r)*1.1);fill:#F5F0E8;stroke:#0F0E1A;stroke-width:1.5;vector-effect:non-scaling-stroke}
.djd-map .lmk{r:calc(var(--r)*1.2);fill:#FFE08A;stroke:#0F0E1A;stroke-width:1.5;vector-effect:non-scaling-stroke}
.djd-map .sdot{r:calc(var(--r)*.6);fill:#F5F0E8;fill-opacity:.8;stroke:#0F0E1A;stroke-width:1;vector-effect:non-scaling-stroke}
.djd-map .pl.ko{fill:#C9C5D6;font-weight:500}
.djd-map .hit{r:calc(var(--r)*2.8);fill:transparent}
.djd-map .me{r:calc(var(--r)*1.5);fill:#4FC3F7;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.djd-map .dl{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;letter-spacing:.1em;text-transform:uppercase;fill:#F5F0E8;font-size:var(--fs);pointer-events:none;paint-order:stroke;stroke:#0B0A14;stroke-width:calc(var(--fs)*.2);stroke-linejoin:round}
.djd-map .dl2{font-family:'Inter',sans-serif;font-weight:600;letter-spacing:.06em;text-transform:uppercase;fill:#A8A4B8;font-size:calc(var(--fs)*.72);pointer-events:none;paint-order:stroke;stroke:#0B0A14;stroke-width:calc(var(--fs)*.16);stroke-linejoin:round}
.djd-map .pl{font-family:'Inter',sans-serif;font-weight:600;fill:#F5F0E8;font-size:calc(var(--fs)*.78);pointer-events:none;paint-order:stroke;stroke:#0B0A14;stroke-width:calc(var(--fs)*.18);stroke-linejoin:round}
.djd-map .pl.lm{fill:#FFE08A;font-style:italic}
.djd-map .rd{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.djd-map .rl{font-family:'Inter',sans-serif;letter-spacing:.3em;text-transform:uppercase;fill:#5EE9C5;fill-opacity:.7;font-size:var(--fs2);pointer-events:none}
.djd-map .sv{r:calc(var(--sv)*var(--f));fill:#FF3366;fill-opacity:.55;stroke:#FF3366;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none;mix-blend-mode:screen}
.djd-map .bus{fill:none;stroke:#FF8FBE;stroke-width:2px;stroke-dasharray:7 5;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.85;pointer-events:none}
.djd-map .bus.on{stroke:#fff;stroke-width:3px;opacity:1}
.djd-map .hp{cursor:pointer;outline:none}
.djd-map .hdot{r:calc(var(--r)*1.35);stroke:#0F0E1A;stroke-width:1.2;vector-effect:non-scaling-stroke}
.djd-map .hp:focus-visible .hdot{stroke:#fff;stroke-width:2}
.djd-map .ghost .hdot{fill:transparent!important;stroke-dasharray:3 3;stroke-width:1.6;opacity:.9}
@keyframes djdPulse{0%{transform:scale(.7);opacity:.95}100%{transform:scale(2.6);opacity:0}}
@media (prefers-reduced-motion:reduce){.djd-map .ring{animation:none;opacity:.7}}
.djd-map .zoom{position:absolute;right:14px;top:14px;display:flex;flex-direction:column;gap:6px}
.djd-map .zoom button{width:44px;height:44px;border-radius:12px;border:1px solid #3A3852;background:rgba(15,14,26,.88);color:var(--ink);font-size:22px;font-weight:700;line-height:1}
.djd-map .legend{position:absolute;left:14px;bottom:12px;display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--dim);background:rgba(15,14,26,.88);padding:8px 14px;border-radius:10px;max-width:calc(100% - 28px)}
.djd-map .legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:baseline}
.djd-map aside{flex:1 1 330px;max-width:420px;min-width:290px;background:var(--panel);border:1px solid rgba(255,201,60,.18);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:14px}
.djd-map .clockrow{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.djd-map .clock{font-family:'Big Shoulders Display',sans-serif;font-weight:900;font-size:88px;line-height:.85;color:var(--gold)}
.djd-map .clock span{font-size:32px;margin-left:6px;color:var(--ink)}
.djd-map .count{text-align:right}
.djd-map .count b{display:block;font-family:'Bricolage Grotesque',sans-serif;font-size:38px;line-height:1;color:var(--mint)}
.djd-map .count span{font-size:13px;color:var(--dim)}
.djd-map input[type=range]{width:100%;height:44px;margin:0;accent-color:var(--gold)}
.djd-map .ticks{display:flex;justify-content:space-between;font-size:12px;color:var(--dim);margin-top:-6px}
.djd-map .note{font-size:12px;color:var(--dim);line-height:1.45;margin:0}
.djd-map .play{align-self:flex-start;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--mint);background:transparent;color:var(--mint);font-size:14px;font-weight:700}
.djd-map .h{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:4px 0 0}
.djd-map .card,.djd-map .area{border:1px solid var(--mint);border-radius:14px;padding:14px;background:var(--night2);display:flex;flex-direction:column;gap:6px}
.djd-map .area{border-color:rgba(255,201,60,.4)}
.djd-map .card .kind{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.djd-map .card .nm,.djd-map .area .nm{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:26px;letter-spacing:-.02em;line-height:1.1}
.djd-map .card .ko{font-size:14px;color:var(--dim)}
.djd-map .card p,.djd-map .area p{margin:0;font-size:14px;line-height:1.5;color:#D9D4E4}
.djd-map .card .links{display:flex;gap:16px;flex-wrap:wrap;font-weight:700;font-size:14px;margin-top:4px}
.djd-map .lb{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 7px;border-radius:12px;font-weight:800;font-size:12px;color:#fff;margin-right:6px;font-family:'Bricolage Grotesque',sans-serif}
.djd-map .nbh{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-top:6px}
.djd-map .nb{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:0 10px;border:0;border-top:1px solid rgba(255,201,60,.15);background:transparent;color:var(--ink);text-align:left;font-size:14px;font-weight:600}
.djd-map .nb span{font-weight:500;font-size:12px;color:var(--dim);white-space:nowrap}
.djd-map .spots{display:flex;flex-direction:column}
.djd-map a{color:var(--mint)}.djd-map a:hover{color:var(--gold)}
.djd-map .ev{border-top:1px solid rgba(255,201,60,.15);padding:10px 0;display:flex;flex-direction:column;gap:2px;font-size:14px}
.djd-map .ev b{font-weight:600}
.djd-map .ev span{font-size:12px;color:var(--dim)}
.djd-map .modes{display:flex;gap:6px;background:#12112a;border-radius:999px;padding:4px}
.djd-map .modes button{flex:1;min-height:44px;border-radius:999px;border:0;background:transparent;color:var(--dim);font-size:14px;font-weight:700}
.djd-map .modes button[aria-pressed="true"]{background:var(--gold);color:var(--night)}
.djd-map .yearbig{font-family:'Big Shoulders Display',sans-serif;font-weight:900;font-size:88px;line-height:.85;color:var(--gold)}
.djd-map .lt{display:flex;flex-direction:column;border-top:1px solid rgba(255,201,60,.15);padding:8px 0;font-size:13px;gap:2px}
.djd-map .lt b{font-weight:600;color:var(--ink)}
.djd-map .lt span{color:var(--dim)}
.djd-map .lt em{font-style:normal;color:var(--gold);font-weight:700}
.djd-map details.seo{margin-top:18px;font-size:13px;color:var(--dim)}
.djd-map details.seo summary{cursor:pointer;font-weight:600;color:var(--ink);min-height:32px}
.djd-map details.seo ul{columns:3 260px;margin:8px 0 0;padding-left:18px}
.djd-map .credit{margin:18px 0 0;font-size:12px;color:var(--dim);line-height:1.5}
@media (max-width:760px){.djd-map svg.map{aspect-ratio:4/5}.djd-map .legend{position:static;max-width:none;border-radius:0}.djd-map{padding:16px;border-radius:16px}.djd-map .clock{font-size:70px}.djd-map .bar{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.djd-map .chip{white-space:nowrap;flex:0 0 auto}}

/* ---- v1 engine additions ---- */
.djd-map{position:relative}
.djd-map .loading{padding:40px;text-align:center;color:var(--dim);font-size:14px}
.djd-map .mapwrap[style] svg.map,.djd-map.v-mini .mapwrap svg.map{height:100%;aspect-ratio:auto}
.djd-map.v-mini{padding:0;background:transparent;border-radius:0;max-width:none}
.djd-map.v-mini .grid{display:block}
.djd-map.v-mini .mapwrap{height:360px;flex:none}
.djd-map .openbig{position:absolute;right:14px;top:14px;min-height:44px;display:inline-flex;align-items:center;padding:0 18px;border-radius:999px;background:var(--gold);color:var(--night)!important;font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:14px;text-decoration:none}
.djd-map.v-mini .legend{display:none}
.djd-map .busnum{font-family:'Inter',sans-serif;font-weight:800;font-size:var(--bn);fill:#FF8FBE;paint-order:stroke;stroke:#0B0A14;stroke-width:calc(var(--bn)*.4);stroke-linejoin:round;pointer-events:none}
.djd-map .savering{r:calc(var(--r)*2);fill:none;stroke:#FFC93C;stroke-width:2.2;vector-effect:non-scaling-stroke;pointer-events:none}
.djd-map .countline{font-size:13px;color:var(--dim)}
.djd-map .chip.mylist{border-color:var(--gold);color:var(--gold)}
.djd-map .acts{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0}
.djd-map .sv-btn{min-height:44px;padding:0 14px;border-radius:999px;border:1px solid #3A3852;background:transparent;color:var(--ink);font-size:13px;font-weight:700}
.djd-map .sv-btn.on{background:var(--gold);border-color:var(--gold);color:var(--night)}
.djd-map .lrow{display:flex;align-items:center;gap:8px;border-top:1px solid rgba(255,201,60,.15);min-height:44px}
.djd-map .lrow label{flex:1;display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;cursor:pointer}
.djd-map .lrow input{width:20px;height:20px;accent-color:var(--gold)}
.djd-map .lrow .done{text-decoration:line-through;color:var(--dim)}
.djd-map .lgo,.djd-map .lx{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--mint);font-size:13px;font-weight:700}
.djd-map .lx{font-size:22px;color:var(--dim)}
.djd-map .more{font-weight:700;font-size:14px}
.djd-map .ylegend{display:flex;flex-wrap:wrap;gap:10px 16px;font-size:12px;color:var(--dim)}
.djd-map .ylegend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.djd-map .dv{position:fixed;inset:0;z-index:99999;background:rgba(7,6,14,.94);display:flex;align-items:center;justify-content:center;padding:18px}
.djd-map .dv[hidden]{display:none!important}
.djd-map .dvbox{max-width:620px;width:100%;text-align:center;display:flex;flex-direction:column;gap:14px}
.djd-map .dvh{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:20px;color:var(--gold)}
.djd-map .dvh small{display:block;font-family:'Inter',sans-serif;font-weight:500;font-size:13px;color:var(--dim);margin-top:4px}
.djd-map .dvko{font-size:clamp(38px,10vw,72px);font-weight:800;line-height:1.1;color:#fff}
.djd-map .dven{font-size:22px;font-weight:600;color:var(--ink)}
.djd-map .dvad,.djd-map .dvst{font-size:17px;color:var(--dim)}
.djd-map .dvbt{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:10px}
.djd-map .dvbt a,.djd-map .dvbt button{min-height:48px;display:inline-flex;align-items:center;padding:0 22px;border-radius:999px;border:1px solid var(--mint);background:transparent;color:var(--mint);font-weight:700;font-size:15px;text-decoration:none;cursor:pointer;font-family:'Bricolage Grotesque',sans-serif}
.djd-map .dvbt button{background:var(--gold);border-color:var(--gold);color:var(--night)}
@media (max-width:760px){.djd-map.v-mini .mapwrap{height:300px}.djd-map .openbig{right:10px;top:10px}}

.djd-map.v-years .legend{display:none}

.djd-map .dvka{font-size:clamp(22px,5.5vw,34px);font-weight:700;color:var(--gold);line-height:1.3}
.djd-map .digline{fill:none;stroke:#FFC93C;stroke-width:3px;stroke-dasharray:2 7;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}
.djd-map .digc{r:calc(var(--r)*2.6);fill:#FFC93C;stroke:#0F0E1A;stroke-width:1.5;vector-effect:non-scaling-stroke}
.djd-map .digt{font-family:'Inter',sans-serif;font-weight:800;font-size:calc(var(--r)*3);fill:#0F0E1A;pointer-events:none}
.djd-map .digstop{pointer-events:none}
.djd-map .rdl{font-family:'Inter',sans-serif;font-weight:600;font-size:calc(var(--fs)*.72);fill:#D9D3C7;letter-spacing:.02em;paint-order:stroke;stroke:#0B0A14;stroke-width:calc(var(--fs)*.2);stroke-linejoin:round;pointer-events:none}
.djd-map.v-mini .place{cursor:pointer}
.djd-map.v-mini svg.map{touch-action:pan-y}
@media (max-width:760px){.djd-map:not(.v-mini) .mapwrap[style]{height:min(460px,62vh)!important}}
@media (max-width:760px){.djd-map .openbig{font-size:13px;min-height:38px;padding:0 14px;top:8px;right:8px}}
.djd-map .pin .dot{fill-opacity:.82;transition:r .18s ease}
.djd-map .pin .halo{opacity:.07}
.djd-map .pin .hit{r:var(--hit,8px);fill:transparent}
.djd-map .pin.foc .dot{r:calc(var(--r)*1.3);fill-opacity:.95}
.djd-map .pin.cur .dot{r:calc(var(--r)*1.9);fill-opacity:1}
.djd-map .pin.cur .halo{opacity:.32}
.djd-map .pin:hover .dot{r:calc(var(--r)*1.5);fill-opacity:1}
@media (max-width:760px){.djd-radio-pill,#djd-btt{transition:opacity .2s ease,transform .2s ease}html.djd-map-under .djd-radio-pill,html.djd-map-under #djd-btt{opacity:0!important;pointer-events:none!important;transform:translateY(14px)!important}}