:root{--paper:#f5f2e9;--green:#193e35;--ink:#25382f;--line:#d2d7c8;--muted:#64736a}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;line-height:1.85}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:3px solid #b18131;outline-offset:4px}.skip{position:absolute;top:-100px;left:15px;background:#fff;padding:10px;z-index:9}.skip:focus{top:10px}.disclosure{text-align:center;padding:9px 20px;background:var(--green);color:#fff;font-size:11px}header,main,footer{max-width:1300px;padding-left:40px;padding-right:40px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;padding-top:28px;padding-bottom:26px;border-bottom:1px solid var(--line)}.brand{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:25px;font-weight:600;text-decoration:none;line-height:1.55}.brand small{display:block;font-family:sans-serif;font-size:10px;letter-spacing:.16em;margin-bottom:7px}.prototype{font-size:10px;border:1px solid var(--line);padding:5px 12px;letter-spacing:.1em}.mobile{display:none}.intro{display:grid;grid-template-columns:1.25fr 1fr;gap:60px;align-items:end;padding:45px 0 30px}.eyebrow{font-size:10px;letter-spacing:.12em;font-weight:600}h1,h2,h3,p{margin:0}h1{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:39px;line-height:1.6;letter-spacing:.04em;margin:10px 0 15px}.intro p{font-size:13px;color:var(--muted);margin-top:12px}.notice{background:#e6ebdf;padding:22px;border-left:2px solid var(--green)}.notice b{font-size:12px}.notice p{font-size:12px;line-height:1.9;margin-top:8px}.search{padding:16px 0 25px;max-width:750px}.search label{display:block;font-size:12px;margin-bottom:7px}.search>div{display:flex;gap:10px}.search input{border:1px solid #b8c4b6;background:#fffdf5;padding:12px 15px;flex:1;min-width:0;font-size:15px;border-radius:3px}.search button{border:1px solid var(--line);background:transparent;font-size:12px;padding:10px 18px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;padding-top:25px;border-top:1px solid var(--ink)}.panel-heading,.result-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}h2{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:25px;font-weight:600}.panel-heading button{background:transparent;border:1px solid var(--line);padding:7px 13px;font-size:11px;white-space:nowrap}.map-key{display:flex;align-items:center;gap:7px;font-size:10px;margin:0 0 12px}.dot{width:9px;height:9px;background:var(--green);border-radius:50%;display:inline-block}.dot.muted{background:#adbaaa;margin-left:10px}.map-shell{border:1px solid var(--line);overflow:hidden}.map-shell svg{display:block;width:100%;max-height:620px}.water-label{fill:#92a9a1;font-size:17px;letter-spacing:.15em}.north{fill:#7b897f;font-size:13px}.map-point circle{fill:var(--green);stroke:var(--paper);stroke-width:3}.map-point text{font-size:15px;fill:var(--green);font-weight:600;paint-order:stroke;stroke:#eef0e6;stroke-width:4px}.map-point[role=button]{cursor:pointer}.map-point.selected circle{fill:#b18131;stroke:#fff;stroke-width:4}.map-point.selected text{fill:#916525}.map-point.inactive circle{fill:#adbaaa;stroke-width:0}.map-point.inactive text{fill:#83917f;font-size:12px;font-weight:400}.map-point[role=button]:hover circle{fill:#b18131}.map-note{font-size:11px;color:var(--muted);margin:12px 0 23px}.map-note strong{font-weight:600}.area-list-heading{font-size:12px;margin-bottom:12px}.area-list{display:flex;flex-wrap:wrap;gap:9px}.area-chip{border:1px solid #bfcab9;background:transparent;padding:9px 15px;font-size:12px;min-height:44px;border-radius:3px}.area-chip[aria-pressed=true]{background:var(--green);color:white;border-color:var(--green)}.small{font-size:10px;color:var(--muted);margin-top:12px}.sort-label{font-size:10px;color:var(--muted);display:flex;flex-direction:column;gap:3px;white-space:nowrap}.sort-label select{background:var(--paper);border:1px solid var(--line);padding:7px 10px;font-size:12px;min-height:44px}.result-heading p{font-size:12px;color:var(--muted);margin-top:5px}.group-heading{font-size:11px;letter-spacing:.04em;color:var(--muted);padding:10px 0;border-bottom:1px solid var(--line);margin-bottom:22px}.date-group+.date-group{margin-top:32px}.video-card{position:relative;padding:0 0 24px 26px;border-left:1px solid #adbcac;margin-bottom:28px}.video-date{font-size:11px;font-weight:600;color:var(--green);letter-spacing:.1em;margin-bottom:10px}.video-date:before{content:'';position:absolute;left:-5px;top:5px;width:9px;height:9px;background:var(--green);border-radius:50%}.channel{font-size:10px;color:var(--muted);margin-bottom:8px}.video-card h3{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:22px;line-height:1.65;font-weight:600;overflow-wrap:anywhere}.video-card h3 a{text-decoration:none}.video-card h3 a:hover{color:#916525}.tags{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}.tags span{font-size:10px;background:#e6ebdf;padding:3px 9px;border-radius:2px}.level{font-size:11px;color:var(--muted)}.youtube-link{display:inline-block;margin:16px 0 3px;background:var(--green);color:white;text-decoration:none;padding:10px 16px;font-size:12px;min-height:44px}.evidence{margin-top:16px;border-top:1px solid var(--line);padding-top:10px;font-size:11px;color:var(--muted)}.evidence summary{cursor:pointer}.evidence p{margin:12px 0}.evidence a{display:inline-block;margin-bottom:5px}.empty{padding:30px;background:#e6ebdf;font-size:14px}.policy{border-top:1px solid var(--line);padding:30px 0 35px;margin-top:50px}.policy h2{font-size:20px;margin-bottom:15px}.policy p{font-size:11px;color:var(--muted);max-width:900px;margin-top:12px}footer{border-top:1px solid var(--line);padding-top:20px;padding-bottom:25px;font-size:10px;display:flex;justify-content:space-between;gap:20px;color:var(--muted)}[hidden]{display:none!important}@media(max-width:800px){header,main,footer{padding-left:24px;padding-right:24px}.intro{gap:25px}.intro h1{font-size:31px}.workspace{gap:25px}.video-card h3{font-size:20px}.brand{font-size:22px}}@media(max-width:620px){.disclosure{font-size:10px;padding:8px 14px}.prototype{display:none}.intro,.workspace{grid-template-columns:1fr;gap:24px}.intro{padding:28px 0 18px}h1{font-size:33px!important}.intro br{display:none}.notice{padding:17px}.search{padding-bottom:18px}.workspace{padding-top:20px}.map-shell svg{max-height:460px}.map-column{padding-bottom:25px;border-bottom:1px solid var(--line)}h2{font-size:24px}.result-heading{align-items:start}.result-heading p{font-size:11px}.video-card{padding-left:20px}.video-card h3{font-size:23px}.map-note{font-size:11px}.mobile{display:none}.map-key{font-size:10px}.policy{margin-top:20px}}
.relative-date{font-size:11px;color:var(--muted);margin-bottom:12px}.date-caution{font-size:11px;line-height:1.9;color:var(--muted);background:#e6ebdf;padding:13px 15px;margin-bottom:23px}
.return-map{font-size:11px;margin:0 0 20px;color:var(--muted)}@media(min-width:800px){.map-column{align-self:start;position:sticky;top:20px}}
.map-point .hit-area,.map-point.selected .hit-area,.map-point.inactive .hit-area,.map-point[role=button]:hover .hit-area{fill:transparent;stroke:none}
/* TAXI TUNES — Tokyo video field guide */
:root{--paper:#fff;--ink:#172037;--green:#2054ed;--line:#dfe5f0;--muted:#667086;--blue:#2054ed;--yellow:#ffe34c}body{background:#fff;line-height:1.7}header,main,footer{max-width:1320px;padding-left:48px;padding-right:48px}.disclosure{background:#172037;color:#e8edff;font-size:10px;padding:7px 16px;letter-spacing:.03em}header{border:0;padding-top:24px;padding-bottom:20px}.brand{font-family:inherit;font-size:27px;font-weight:900;letter-spacing:-1px;line-height:1.15}.brand small{font-size:8px;letter-spacing:.13em;margin-bottom:9px;color:var(--muted)}.brand-icon{display:inline-grid;place-items:center;background:var(--yellow);width:32px;height:32px;border-radius:50%;font-size:16px;vertical-align:middle;margin-right:5px}.brand-blue{color:var(--blue)}.brand-sub{font-size:10px;font-weight:600;letter-spacing:.08em;display:block;margin:7px 0 0 43px;color:var(--muted)}.prototype{border:0;background:#eef2ff;color:var(--blue);font-weight:800;border-radius:20px;padding:8px 14px;font-size:10px}.intro{position:relative;background:#f1f5ff;border-radius:24px;padding:38px 44px;margin:12px 0 25px;grid-template-columns:1.25fr 1fr;gap:20px;align-items:center;overflow:hidden}.eyebrow{font-size:11px;letter-spacing:.08em;color:var(--blue);font-weight:800}h1,h2,h3,.video-card h3{font-family:inherit}h1{font-size:51px;line-height:1.35;font-weight:900;letter-spacing:-.045em;margin:15px 0}h1 span{color:var(--blue)}.intro p{font-size:13px;line-height:1.9;color:#4b5977}.hero-art{position:relative;height:255px;display:grid;place-items:center}.ticket{background:var(--blue);color:#fff;transform:rotate(-9deg);border-radius:16px;width:174px;height:202px;padding:22px;font-size:16px;font-weight:900;line-height:1.3;letter-spacing:.04em;box-shadow:10px 10px 0 #c8d5ff}.ticket b{display:grid;place-items:center;font-size:30px;background:var(--yellow);color:var(--ink);width:55px;height:55px;border-radius:50%;margin:10px 0 0}.art-label{position:absolute;top:8px;left:0;font-size:10px;font-weight:800;border-bottom:2px solid var(--ink);padding:3px 0;transform:rotate(-6deg)}.art-caption{position:absolute;bottom:0;right:0;font-size:11px;letter-spacing:.06em;font-weight:700}.art-star{position:absolute;right:8px;top:4px;color:var(--blue);font-size:76px;line-height:1}.art-number{position:absolute;bottom:15px;left:0;transform:rotate(-7deg);background:var(--yellow);padding:8px 13px;font-size:33px;font-weight:900;line-height:1.1;border-radius:12px}.art-number span{display:block;font-size:9px;letter-spacing:.1em}.search{max-width:none;display:flex;align-items:center;gap:26px;padding:0 0 26px}.search label{font-weight:700;font-size:12px;white-space:nowrap;margin:0}.search>div{flex:1;gap:8px}.search input{background:#f6f8fc;border:1px solid var(--line);border-radius:12px;padding:13px 18px;font-size:14px}.search button{border:0;background:#eef2ff;color:var(--blue);font-weight:700;border-radius:12px;font-size:11px;padding:10px 18px}.workspace{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px;border:0;padding-top:8px}.map-column{background:#f6f8fc;padding:22px;border-radius:20px;position:sticky;top:16px}.panel-heading h2{font-size:20px;letter-spacing:-.03em;font-weight:800}.section-number{display:inline-grid;place-items:center;background:var(--yellow);color:var(--ink);width:27px;height:27px;border-radius:50%;font-size:12px;vertical-align:middle;margin-right:4px}.panel-heading button{background:#fff;border:1px solid var(--line);border-radius:20px;font-size:10px;padding:7px 12px}.map-key{font-size:10px;color:var(--muted)}.map-shell{border:0;border-radius:14px;background:#f2f6ff}.map-shell svg{max-height:560px}.map-point circle{fill:var(--blue);stroke:#fff;stroke-width:3}.map-point text{font-family:inherit;font-size:15px;fill:#173a9b;font-weight:800;stroke:#f2f6ff;stroke-width:5px}.map-point.selected circle{fill:var(--yellow);stroke:var(--ink);stroke-width:2}.map-point.selected text{fill:var(--ink)}.map-point[role=button]:hover circle{fill:var(--yellow)}.map-note{font-size:10px;line-height:1.8;margin:10px 0 20px}.water-label{fill:#4c9fc2;font-size:15px}.north{fill:#687b9f}.area-list-heading{font-size:11px;font-weight:800}.area-list{gap:6px}.area-chip{font-size:11px;min-height:38px;border:1px solid #e0e6f1;border-radius:20px;background:#fff;padding:7px 12px;font-weight:600}.area-chip[aria-pressed=true]{background:var(--blue);border-color:var(--blue)}.area-chip:hover{border-color:var(--blue)}.small{font-size:10px;line-height:1.8}.result-heading{margin:0 0 14px;align-items:start}.result-heading h2{font-size:28px;line-height:1.4;font-weight:900;letter-spacing:-.03em;margin-top:4px}.result-heading .eyebrow{font-size:9px}.sort-label{font-size:9px}.sort-label select{border-radius:8px;background:#fff;font-size:11px}.return-map{font-size:10px;margin-bottom:18px}.group-heading{font-size:11px;font-weight:700;margin:0 0 14px;padding:9px 0;color:var(--muted)}.date-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.date-group>.group-heading,.date-group>.date-caution{grid-column:1/-1}.date-group+.date-group{margin-top:22px}.video-card{margin:0;padding:0 0 15px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;transition:transform .18s,border-color .18s;min-width:0}.video-card:hover{transform:translateY(-3px);border-color:#a7baff}.video-visual{height:128px;display:block;position:relative;background:#e9efff;color:var(--blue);overflow:hidden;text-decoration:none}.video-visual:after{content:'';position:absolute;width:160px;height:160px;border:22px solid currentColor;opacity:.065;border-radius:50%;right:-45px;top:-35px}.visual-place{position:absolute;left:15px;top:18px;font-size:26px;font-weight:900;letter-spacing:-.05em;max-width:72%;line-height:1.25;z-index:1}.play-symbol{position:absolute;right:14px;bottom:16px;display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:var(--blue);color:#fff;font-size:13px;z-index:1}.visual-caption{position:absolute;bottom:16px;left:15px;font-size:7px;font-weight:800;letter-spacing:.09em}.video-card:nth-of-type(3n+2) .video-visual{background:#fff3ad;color:#544400}.video-card:nth-of-type(3n+2) .play-symbol{background:#172037}.video-card:nth-of-type(3n) .video-visual{background:#e1f6ee;color:#15775a}.video-card>.video-date,.video-card>.relative-date,.video-card>.small,.video-card>.channel,.video-card>h3,.video-card>.tags,.video-card>.level,.video-card>.evidence{margin-left:15px;margin-right:15px}.video-date{font-size:9px;letter-spacing:.02em;margin-top:13px;margin-bottom:6px;color:var(--muted)}.video-date:before{display:none}.relative-date{font-size:9px;line-height:1.5;margin-bottom:5px}.channel{font-size:8px;line-height:1.5;margin-bottom:8px}.video-card h3{font-size:15px;font-weight:800;line-height:1.65;letter-spacing:-.02em}.video-card h3 a:hover{color:var(--blue)}.tags{gap:4px;margin-top:10px;margin-bottom:8px}.tags span{background:#f0f4ff;color:#3659a8;border-radius:5px;font-size:9px;padding:3px 7px}.level{font-size:9px;line-height:1.7}.youtube-link{display:block;text-align:center;margin:13px 15px 0;border-radius:8px;background:var(--blue);font-size:11px;font-weight:700;padding:10px;min-height:40px}.evidence{font-size:9px;margin-top:12px;padding-top:8px}.date-caution{font-size:10px;padding:12px 14px;border-radius:10px;background:#f5f7fb;margin-bottom:0}.empty{background:#f0f4ff;border-radius:14px}.policy{margin-top:35px;padding:20px 0;border-color:var(--line)}.policy summary{font-size:12px;cursor:pointer;font-weight:700;padding:12px 0}.policy summary span{float:right;color:var(--blue)}.policy-content{padding:5px 0 14px}.policy p{font-size:11px}footer{font-size:10px;padding-top:20px;padding-bottom:25px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:3px solid #2054ed;outline-offset:4px}
@media(max-width:900px){header,main,footer{padding-left:25px;padding-right:25px}.intro{padding:30px;gap:10px}h1{font-size:40px}.workspace{gap:20px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.map-column{padding:16px}.date-group{grid-template-columns:1fr}.video-visual{height:140px}.visual-place{font-size:30px}}
@media(max-width:620px){header,main,footer{padding-left:18px;padding-right:18px}.disclosure{font-size:8px;padding:7px 10px}header{padding-top:20px;padding-bottom:15px}.brand{font-size:25px}.brand small{font-size:7px}.brand-sub{font-size:9px}.intro{grid-template-columns:1fr .62fr;padding:24px 20px;border-radius:18px;margin-top:4px;margin-bottom:20px;gap:0;min-height:235px}.intro h1{font-size:31px!important;line-height:1.4;margin:12px 0}.intro br{display:initial}.intro .eyebrow{font-size:9px;letter-spacing:0}.intro p{font-size:10px;line-height:1.9;max-width:215px}.intro p br{display:none}.hero-art{height:175px;transform:translateX(9px)}.ticket{width:98px;height:140px;padding:16px 12px;border-radius:10px;font-size:11px;box-shadow:6px 6px 0 #c8d5ff}.ticket b{width:35px;height:35px;font-size:18px;margin-top:6px}.art-label{font-size:7px;top:0;left:2px}.art-caption{font-size:7px;bottom:0;right:-4px;white-space:nowrap}.art-star{font-size:42px;right:-10px;top:3px}.art-number{font-size:23px;padding:5px 8px;left:-8px;bottom:8px;border-radius:8px}.art-number span{font-size:6px}.search{display:block;padding-bottom:20px}.search label{font-size:11px;margin-bottom:8px}.search input{font-size:12px;padding:12px;min-height:46px}.search button{font-size:10px;padding:10px 13px}.workspace{grid-template-columns:1fr;gap:27px;padding:0}.map-column{position:static;border:0;padding:17px;border-radius:18px}.panel-heading{margin-bottom:12px}.panel-heading h2{font-size:19px}.map-shell svg{max-height:none;width:100%}.map-note{font-size:9px;margin-bottom:17px}.area-chip{font-size:10px;min-height:38px;padding:7px 10px}.map-point text{font-size:16px}.result-heading h2{font-size:27px}.date-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.video-visual{height:108px}.visual-place{font-size:23px;left:11px;top:14px}.visual-caption{font-size:6px;left:11px;bottom:13px}.play-symbol{width:29px;height:29px;font-size:11px;right:10px;bottom:10px}.video-card h3{font-size:12px;line-height:1.7}.video-card>.video-date,.video-card>.relative-date,.video-card>.small,.video-card>.channel,.video-card>h3,.video-card>.tags,.video-card>.level,.video-card>.evidence{margin-left:11px;margin-right:11px}.youtube-link{font-size:10px;margin-left:11px;margin-right:11px;padding:9px 3px}.channel{font-size:7px}.video-date{font-size:8px}.relative-date,.level,.evidence{font-size:8px}.tags span{font-size:8px;padding:3px 5px}.sort-label select{min-height:42px}.date-caution{font-size:9px}.policy{margin-top:25px}footer{font-size:8px}}
@media(max-width:355px){.intro{padding:20px 16px;grid-template-columns:1fr .5fr}.intro h1{font-size:28px!important}.hero-art{transform:scale(.85) translateX(5px)}.video-card h3{font-size:12px}.brand{font-size:23px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:620px){.intro{grid-template-columns:minmax(0,1fr) 105px;padding:23px 20px}.intro h1{font-size:26px!important;letter-spacing:-.06em;white-space:nowrap}.intro .eyebrow{font-size:8px;white-space:nowrap}.hero-art{transform:scale(.9) translateX(6px)}}
@media(max-width:355px){.intro{grid-template-columns:minmax(0,1fr) 78px;padding:22px 15px}.intro h1{font-size:23px!important}.intro .eyebrow{font-size:7px}.hero-art{transform:scale(.73) translateX(2px)}}
/* Geographic map */
#area-map{height:540px;width:100%;z-index:0;isolation:isolate;font-family:inherit;background:#e9eef2;border-radius:14px}.map-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;font-size:10px;color:var(--muted)}.map-tools>span{display:flex;align-items:center;gap:6px}.map-tools button{font-size:10px;background:#fff;color:var(--blue);border:1px solid var(--line);padding:8px 11px;border-radius:18px;min-height:36px;white-space:nowrap}.map-shell{overflow:hidden}.geo-marker{border:0;background:none}.geo-pin{position:absolute;bottom:0;left:0;transform:translateX(-50%);display:flex;align-items:center;gap:5px;border:2px solid #fff;background:var(--blue);color:#fff;white-space:nowrap;font-size:11px;font-weight:800;padding:6px 8px;border-radius:9px;min-height:34px;box-shadow:0 2px 8px #14295740;line-height:1.2;cursor:pointer}.geo-pin:after{content:'';position:absolute;top:100%;left:calc(50% - 5px);border:5px solid transparent;border-top-color:var(--blue)}.geo-pin b{display:grid;place-items:center;background:#fff3;color:inherit;font-size:10px;min-width:18px;min-height:18px;border-radius:5px}.geo-pin.selected{background:var(--yellow);color:var(--ink);border-color:var(--ink);z-index:2}.geo-pin.selected:after{border-top-color:var(--ink)}.geo-pin.no-matches{background:#667086}.geo-pin.no-matches:after{border-top-color:#667086}.geo-pin:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.leaflet-container .leaflet-control-attribution{font-size:9px;line-height:1.5;background:#fffffff0;padding:2px 5px}.leaflet-container a{color:#204ba9}.leaflet-control-zoom{border:1px solid #dfe5f0!important;border-radius:10px!important;overflow:hidden;box-shadow:0 2px 6px #0001!important}.leaflet-control-zoom a{width:34px!important;height:34px!important;line-height:34px!important;color:var(--ink)!important}.leaflet-control-scale-line{font-size:9px}.coordinate-note{margin-top:-8px;color:#667086}.leaflet-container button{font-family:inherit}
@media(max-width:620px){#area-map{height:470px}.map-tools{font-size:9px}.geo-pin{font-size:10px;padding:6px;min-height:32px}.geo-pin b{font-size:9px;min-width:16px;min-height:16px}.coordinate-note{font-size:9px}.map-column{padding:14px}}
.geo-pin{width:30px;height:30px;min-height:30px;justify-content:center;border-radius:50%;padding:3px}.geo-pin>span{display:none}.geo-pin b{background:none;font-size:11px}.geo-pin:after{display:none}.map-detailed .geo-pin,.geo-pin.selected,.geo-pin:hover,.geo-pin:focus-visible{width:auto;height:auto;min-height:32px;border-radius:9px;padding:6px 8px}.map-detailed .geo-pin>span,.geo-pin.selected>span,.geo-pin:hover>span,.geo-pin:focus-visible>span{display:block}.map-detailed .geo-pin b,.geo-pin.selected b{background:#ffffff30;min-width:17px}.map-tools>span{font-size:9px}
/* Miniature city landmarks */
.geo-pin.has-landmark{width:52px;height:66px;min-height:0;border:0;background:none;box-shadow:none;border-radius:0;padding:0;display:block;bottom:0;filter:drop-shadow(0 2px 2px #17203725)}.geo-pin.has-landmark .landmark-art{display:block;width:52px;height:52px;object-fit:contain;transition:transform .18s;position:absolute;bottom:9px;left:0}.geo-pin.has-landmark>b{position:absolute;right:-2px;bottom:9px;background:var(--blue);border:2px solid white;border-radius:50%;width:23px;height:23px;min-width:23px;min-height:23px;box-shadow:0 1px 4px #17203730;color:white;font-size:10px}.geo-pin.has-landmark>span{position:absolute;left:50%;top:calc(100% - 6px);transform:translateX(-50%);background:var(--blue);color:#fff;border:1px solid white;border-radius:5px;padding:3px 6px;font-size:10px;box-shadow:0 1px 4px #17203720}.geo-pin.has-landmark.selected>b{background:var(--yellow);color:var(--ink);border-color:var(--ink)}.geo-pin.has-landmark.selected>span{background:var(--yellow);color:var(--ink)}.geo-pin.has-landmark.selected .landmark-art,.geo-pin.has-landmark:hover .landmark-art{transform:translateY(-4px) scale(1.12)}.geo-pin.has-landmark.no-matches{opacity:.45;background:none}.geo-pin.has-landmark.no-matches>b{background:#667086}.map-detailed .geo-pin.has-landmark{width:76px;height:88px}.map-detailed .geo-pin.has-landmark .landmark-art{width:76px;height:76px}.map-detailed .geo-pin.has-landmark>b{right:0}.landmark-gallery-heading{display:flex;align-items:center;justify-content:space-between;margin:24px 0 10px;gap:10px}.landmark-gallery-heading h3{font-size:12px;font-weight:800}.landmark-gallery-heading span{font-size:9px;color:var(--muted)}.landmark-gallery{display:flex;overflow-x:auto;gap:9px;scroll-snap-type:x proximity;padding:3px 2px 14px;margin-bottom:16px;scrollbar-width:thin;scrollbar-color:#b8c9ff transparent}.landmark-card{flex:0 0 100px;display:flex;flex-direction:column;align-items:center;scroll-snap-align:start;border:1px solid var(--line);background:#fff;border-radius:13px;padding:9px 6px 12px;min-height:150px;text-align:center;color:var(--ink)}.landmark-card img{width:82px;height:82px;object-fit:contain;margin-bottom:7px}.landmark-card b{font-size:11px}.landmark-card>span{font-size:8px;color:var(--muted);line-height:1.5;margin-top:3px}.landmark-card[aria-pressed=true]{background:#fff9da;border-color:#dcbf38}.landmark-card:hover{border-color:var(--blue)}.map-column{max-height:calc(100vh - 32px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#d4ddf0 transparent}.leaflet-tooltip{font-family:inherit;font-size:10px}
@media(max-width:620px){.map-column{max-height:none;overflow:visible}.landmark-card{flex-basis:90px;min-height:139px}.landmark-card img{width:74px;height:74px}.geo-pin.has-landmark{width:44px;height:57px}.geo-pin.has-landmark .landmark-art{width:44px;height:44px}.geo-pin.has-landmark>b{width:21px;height:21px;min-width:21px;min-height:21px;font-size:9px}.map-detailed .geo-pin.has-landmark{width:68px;height:80px}.map-detailed .geo-pin.has-landmark .landmark-art{width:68px;height:68px}}
.workspace>*{min-width:0}.landmark-gallery{max-width:100%;width:100%}.map-tools{flex-wrap:wrap}@media(max-width:620px){.workspace{grid-template-columns:minmax(0,1fr)}}

/* A quiet pixel world lets the miniature landmarks carry the detail. */
#area-map.pixel-map{height:600px;background:#f2ebd8;border:2px solid #d7c9aa;border-radius:12px;box-shadow:inset 0 0 0 4px #fff8e7;font-family:inherit}
.pixel-map .leaflet-image-layer{image-rendering:pixelated}
.pixel-map .geo-pin.has-landmark{width:38px;height:52px;filter:drop-shadow(2px 3px 0 #584b2e20)}
.pixel-map .geo-pin.has-landmark .landmark-art{width:38px;height:38px;bottom:12px;left:0}
.pixel-map .geo-pin.has-landmark>b{width:20px;height:20px;min-width:20px;min-height:20px;right:-4px;bottom:12px;border-radius:4px;border:2px solid #fffaf0;background:#3052ba;font-size:9px;box-shadow:2px 2px 0 #67594430}
.pixel-map .geo-pin.has-landmark>span{display:block;top:calc(100% - 8px);font-size:8px;line-height:1.25;border:0;padding:2px 3px;border-radius:2px;background:#fff9e8ee;color:#4c493c;box-shadow:0 1px 0 #cfc2a3;font-weight:750;max-width:none}
.pixel-map .geo-pin.has-landmark.selected>span{background:#ffe572;color:#292b31;box-shadow:2px 2px 0 #b8a151}
.pixel-map .geo-pin.has-landmark.selected>b{background:#ffe572;color:#292b31;border-color:#292b31}
.pixel-map.map-detailed .geo-pin.has-landmark{width:62px;height:76px}
.pixel-map.map-detailed .geo-pin.has-landmark .landmark-art{width:62px;height:62px}
.pixel-map.map-detailed .geo-pin.has-landmark>span{font-size:10px;padding:3px 5px}
.pixel-map.map-close .geo-pin.has-landmark{width:84px;height:98px}
.pixel-map.map-close .geo-pin.has-landmark .landmark-art{width:84px;height:84px}
.pixel-map .geo-pin.has-landmark:hover .landmark-art,.pixel-map .geo-pin.has-landmark.selected .landmark-art{transform:translateY(-3px) scale(1.07)}
.pixel-map .geo-pin.has-landmark:focus-visible{outline:3px solid #3052ba;outline-offset:5px}
.pixel-map .leaflet-control-zoom{border:2px solid #cfc2a3!important;border-radius:4px!important;box-shadow:3px 3px 0 #6b583322!important}
.pixel-map .leaflet-control-zoom a{background:#fff9e8!important;color:#4c493c!important;border-color:#d7c9aa!important}
.pixel-map .leaflet-tooltip{border-radius:3px;background:#fff9e8;border-color:#d7c9aa;color:#4c493c}
.pixel-map-legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:9px;color:#756d59;margin:9px 0 12px;line-height:1.5}
.pixel-map-legend span{display:flex;gap:5px;align-items:center}
.pixel-map-legend i{width:8px;height:8px;display:inline-block;background:#9bd2df;box-shadow:2px 2px 0 #77b9cc}
.pixel-map-legend .legend-park{background:#b8cca0;box-shadow:2px 2px 0 #95b785}
.pixel-map-legend .legend-road{background:#fff9e9;box-shadow:2px 2px 0 #d6ccb5;border:1px solid #d6ccb5}
.map-tools .pixel-map-label{font-size:9px;letter-spacing:1.3px;font-weight:800;color:#756d59}

/* A complete, floating 25-municipality diorama occupies the full map stage. */
.workspace{grid-template-columns:minmax(0,1fr)}
.map-column{position:static;top:auto;max-height:none;overflow:visible}
.island-scope{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-2px 0 12px;color:#758e9e;font-size:10px}
.island-scope span:first-child{font-size:11px;font-weight:750;color:#436778;letter-spacing:.08em}
#area-map.pixel-map.floating-island{height:650px;background:#fff;border:1px solid #d7e8f0;border-radius:18px;box-shadow:inset 0 0 60px #c4e1ed33}
.map-shell:has(.floating-island){border:0;border-radius:18px}
.floating-island .leaflet-image-layer{image-rendering:pixelated}
.floating-island:not(.map-detailed) .geo-pin.has-landmark>b{opacity:0}
.floating-island:not(.map-detailed) .geo-pin.has-landmark.selected>b,.floating-island:not(.map-detailed) .geo-pin.has-landmark:hover>b,.floating-island:not(.map-detailed) .geo-pin.has-landmark:focus-visible>b{opacity:1}
.pixel-map.floating-island .geo-pin.has-landmark{width:46px;height:58px;filter:drop-shadow(2px 4px 2px #48576325)}
.pixel-map.floating-island .geo-pin.has-landmark .landmark-art{width:46px;height:46px;bottom:0;object-fit:contain}
.pixel-map.floating-island .geo-pin.has-landmark>b{width:18px;height:18px;min-width:18px;min-height:18px;bottom:4px;right:-3px;font-size:8px;border-radius:6px;box-shadow:0 2px 3px #506d7c25}
.pixel-map.floating-island .geo-pin.has-landmark>span{display:block;top:calc(100% + 2px);font-size:8px;background:#ffffffdd;color:#45606e;padding:2px 4px;border-radius:5px;box-shadow:0 1px 3px #63889b20}
.pixel-map.floating-island.map-detailed .geo-pin.has-landmark{width:54px;height:68px}
.pixel-map.floating-island.map-detailed .geo-pin.has-landmark .landmark-art{width:54px;height:54px}
.pixel-map.floating-island.map-detailed .geo-pin.has-landmark>b{width:22px;height:22px;min-width:22px;min-height:22px;font-size:10px}
.pixel-map.floating-island.map-detailed .geo-pin.has-landmark>span{font-size:10px;padding:3px 5px}
.pixel-map.floating-island.map-close .geo-pin.has-landmark{width:92px;height:108px}
.pixel-map.floating-island.map-close .geo-pin.has-landmark .landmark-art{width:92px;height:92px}
.pixel-map.floating-island .geo-pin.has-landmark.selected>span{background:#ffe572;color:#292b31}
.floating-island .leaflet-control-zoom{border:1px solid #c7dce7!important;border-radius:10px!important;box-shadow:0 4px 12px #66899b18!important}
.floating-island .leaflet-control-zoom a{background:#fffffff5!important;color:#426d87!important;border-color:#dceaf1!important}
.map-tools .pixel-map-label{color:#557d92}
@media(min-width:900px){.results .date-group{grid-template-columns:repeat(3,minmax(0,1fr))}.landmark-card{flex-basis:112px}}
@media(max-width:620px){#area-map.pixel-map.floating-island{height:420px;border-radius:14px}.island-scope{font-size:8px;gap:6px}.island-scope span:first-child{font-size:9px}.pixel-map.floating-island .geo-pin.has-landmark{width:24px;height:36px}.pixel-map.floating-island .geo-pin.has-landmark .landmark-art{width:24px;height:24px;bottom:0}.pixel-map.floating-island .geo-pin.has-landmark>b{width:14px;height:14px;min-width:14px;min-height:14px;font-size:7px;bottom:0;right:-4px;border-width:1px;border-radius:4px}.pixel-map.floating-island .geo-pin.has-landmark>span{display:none}.pixel-map.floating-island .geo-pin.has-landmark.selected>span,.pixel-map.floating-island .geo-pin.has-landmark:focus-visible>span{display:block;font-size:8px}.pixel-map.floating-island.map-detailed .geo-pin.has-landmark{width:54px;height:68px}.pixel-map.floating-island.map-detailed .geo-pin.has-landmark .landmark-art{width:54px;height:54px}.pixel-map.floating-island.map-detailed .geo-pin.has-landmark>b{width:19px;height:19px;min-width:19px;min-height:19px;font-size:9px}.pixel-map.floating-island.map-detailed .geo-pin.has-landmark>span{display:block;font-size:8px}.pixel-map.floating-island.map-close .geo-pin.has-landmark{width:74px;height:88px}.pixel-map.floating-island.map-close .geo-pin.has-landmark .landmark-art{width:74px;height:74px}}
@media(max-width:620px){#area-map.pixel-map{height:480px}.pixel-map .geo-pin.has-landmark{width:32px;height:44px}.pixel-map .geo-pin.has-landmark .landmark-art{width:32px;height:32px;bottom:10px}.pixel-map .geo-pin.has-landmark>b{width:17px;height:17px;min-width:17px;min-height:17px;bottom:10px;font-size:8px;right:-3px}.pixel-map .geo-pin.has-landmark>span{font-size:7px;top:calc(100% - 6px);padding:2px 2px}.pixel-map.map-detailed .geo-pin.has-landmark{width:56px;height:70px}.pixel-map.map-detailed .geo-pin.has-landmark .landmark-art{width:56px;height:56px;bottom:12px}.pixel-map.map-detailed .geo-pin.has-landmark>b{width:20px;height:20px;min-width:20px;min-height:20px;bottom:12px;font-size:9px}.pixel-map.map-detailed .geo-pin.has-landmark>span{font-size:9px}.pixel-map.map-close .geo-pin.has-landmark{width:78px;height:92px}.pixel-map.map-close .geo-pin.has-landmark .landmark-art{width:78px;height:78px}.pixel-map-legend{font-size:8px;gap:12px}}
.scope-heading{font-size:12px;font-weight:600;margin:30px 0 20px;padding:9px 12px;border-left:2px solid var(--green);background:#e6ebdf}.map-point text{font-size:13px}

/* Overview taps zoom first so dense mobile sprites do not compete for taps. */
.floating-island.map-overview .geo-pin{pointer-events:none}
/* Hard-edged RPG sprites and small stone-like location plaques. */
.floating-island .landmark-art,.landmark-card img{image-rendering:pixelated}
.pixel-map.floating-island .geo-pin.has-landmark{filter:drop-shadow(2px 2px 0 #302e3826)}
.pixel-map.floating-island .geo-pin.has-landmark>span{border:1px solid #736345;border-radius:0;background:#f2e4bb;color:#3f402d;box-shadow:2px 2px 0 #453f3926}
.pixel-map.floating-island .geo-pin.has-landmark>b{border-radius:0;box-shadow:2px 2px 0 #453f3926}

/* Geographic references are distinct from the selectable video areas. */
.geo-context-marker{pointer-events:none!important;border:0;background:none}
.geo-feature-label{display:inline-block;white-space:nowrap;transform:translate(-50%,0);font-size:10px;line-height:1.25;font-weight:750;padding:2px 4px;color:#3b4231;background:#f7edceee;border:1px solid #8a7957;box-shadow:2px 2px 0 #3a382b25;pointer-events:none}
.geo-river-label{color:#165574;border-color:#4988a2;background:#e1f3f7ed;font-size:11px;letter-spacing:1px}
.geo-landmark-label{color:#493c26;background:#ffe4a2;border-color:#8c6736;font-size:11px}
.geo-road-label{display:none;font-size:9px;background:#f4e7c8e6;color:#665537;border-color:#b7a080;font-weight:600}
.map-detailed .geo-road-label{display:inline-block}
.map-context-attribution{margin:7px 0;color:#7a827c;font-size:9px;text-align:right}
.map-context-attribution a{color:inherit}
.map-context-key{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:10px;line-height:1.7;margin:12px 0;color:#50605a}
.map-context-key b{color:#5a4630}
@media(max-width:620px){.geo-landmark-label{font-size:8px;padding:2px 3px}.geo-river-label{font-size:8px;padding:2px 3px;letter-spacing:0}.map-context-key{font-size:9px}.map-context-attribution{font-size:8px}}



.map-compass{background:#fffffff0;color:#344d5c;border:1px solid #c8d4da;padding:7px 10px;font-size:12px;font-weight:800;box-shadow:2px 2px 0 #394f5b16;pointer-events:none}
@media(max-width:620px){.map-overview .geo-river-label[data-feature="荒川"]{transform:translate(-50%,-24px)}.map-overview .geo-river-label[data-feature="荒川"]::after{content:"";position:absolute;left:50%;top:100%;height:24px;border-left:1px dashed #4988a2}}
/* City board: readable town plaques sit above a quiet, low-rise street map. */
#area-map.pixel-map.floating-island{background:#d7f1f4;box-shadow:inset 0 0 60px #a3d6de55;border:2px solid #b6d6dc;border-radius:12px}
.pixel-map.floating-island .geo-pin.has-landmark,
.pixel-map.floating-island.map-detailed .geo-pin.has-landmark,
.pixel-map.floating-island.map-close .geo-pin.has-landmark{width:36px;height:46px;filter:none}
.pixel-map.floating-island .geo-pin.has-landmark .landmark-art{width:28px;height:28px;left:4px;bottom:10px;filter:drop-shadow(1px 2px 0 #5a798433)}
.pixel-map.floating-island.map-detailed .geo-pin.has-landmark .landmark-art{width:36px;height:36px;left:0;bottom:10px}
.pixel-map.floating-island.map-close .geo-pin.has-landmark .landmark-art{width:44px;height:44px;left:-4px;bottom:10px}
.pixel-map.floating-island .geo-pin.has-landmark>span,
.pixel-map.floating-island.map-detailed .geo-pin.has-landmark>span,
.pixel-map.floating-island.map-close .geo-pin.has-landmark>span{display:block;top:auto;bottom:-12px;padding:4px 7px;font-size:12px;line-height:1.2;letter-spacing:.02em;font-weight:850;color:#20333d;background:#fffef8;border:1px solid #516773;border-bottom-width:3px;border-radius:3px;box-shadow:2px 2px 0 #34596828;max-width:none}
.pixel-map.floating-island .geo-pin.has-landmark>span::before{content:'';display:inline-block;width:6px;height:6px;margin-right:5px;background:#6db7c5;border:1px solid #3b7f90;vertical-align:1px}
.pixel-map.floating-island .geo-pin.has-landmark>b{opacity:0;bottom:29px;right:-8px;background:#356785;border:2px solid white;border-radius:5px;width:20px;height:20px;min-width:20px;min-height:20px;font-size:10px}
.pixel-map.floating-island.map-detailed .geo-pin.has-landmark>b{opacity:1}
.pixel-map.floating-island .geo-pin.has-landmark.selected>span{background:#ffde70;border-color:#66501c;color:#302b1c}
.pixel-map.floating-island .geo-pin.has-landmark.selected>span::before{background:#e39435;border-color:#8b5c23}
.pixel-map.floating-island .geo-pin.has-landmark.label-hidden>span{visibility:hidden}
.pixel-map.floating-island .geo-pin.has-landmark.label-hidden:focus-visible>span,
.pixel-map.floating-island .geo-pin.has-landmark.label-hidden:hover>span{visibility:visible;z-index:5}
.pixel-map.floating-island .geo-pin.has-landmark:focus-visible{outline:3px solid #20769c;outline-offset:7px}
.geo-feature-label{background:#f8fcfbe8;border-color:#8aa7af;box-shadow:none;border-radius:3px;color:#516b76;font-size:9px}
.geo-landmark-label{background:#fff3c8;color:#75612c;border-color:#c5b176;font-size:10px}
.geo-river-label{background:#d9f3fbe8;border-color:#60a6bf;color:#226e89;font-size:10px}
.geo-road-label{background:#fffffff0;font-size:9px;color:#627b87;border-color:#a3b9c1}
.map-detailed:not(.map-close) .geo-road-label{display:none}
.floating-island.map-overview .orientation-art{opacity:.85}
.map-overview .geo-landmark-label{display:none}
@media(max-width:620px){
 #area-map.pixel-map.floating-island{height:480px}
 .pixel-map.floating-island .geo-pin.has-landmark>span,
 .pixel-map.floating-island.map-detailed .geo-pin.has-landmark>span{font-size:11px;padding:4px 5px}
 .pixel-map.floating-island .geo-pin.has-landmark .landmark-art{width:22px;height:22px;left:7px}
 .pixel-map.floating-island.map-detailed .geo-pin.has-landmark .landmark-art{width:30px;height:30px;left:3px}
 .pixel-map.floating-island.map-close .geo-pin.has-landmark .landmark-art{width:38px;height:38px;left:-1px}
 .geo-river-label{font-size:9px}
}

.pixel-map.floating-island.map-overview .geo-pin.has-landmark .landmark-art{width:22px;height:22px;left:7px;bottom:12px;opacity:.75}
.map-tools .pixel-map-label{margin-right:auto}
.map-tools{justify-content:flex-end}

/* The palace label belongs to the ground parcel, with no separate artwork. */
.geo-landmark-label[data-feature="皇居"]{display:inline-block;background:#ecf0d8e6;border-color:#829e77;color:#496b45;font-size:10px;box-shadow:none}

/* Oversized area landmarks: readable silhouettes are the stars of the city board. */




#area-map.pixel-map.floating-island .geo-pin.has-landmark .landmark-art{width:var(--area-art);height:var(--area-art);left:calc(50% - var(--area-art)/2);bottom:12px;opacity:1;filter:drop-shadow(1px 3px 1px #365c7640);pointer-events:none}
#area-map.pixel-map.floating-island .geo-pin.has-landmark>span{z-index:2}
#area-map.pixel-map.floating-island .geo-pin.has-landmark>b{bottom:calc(var(--area-art) - 5px);right:calc(10px - var(--area-art)/2);z-index:3}
#area-map.pixel-map.floating-island .geo-pin.has-landmark.selected .landmark-art{transform:translateY(-4px) scale(1.08)}
@media(max-width:620px){




}

/* All plaques sit above the large artwork, even where neighboring silhouettes overlap. */
.area-art-marker{background:none;border:0;pointer-events:none!important}
.area-artwork{position:absolute;bottom:0;left:0;transform:translateX(-50%);width:36px;height:46px;pointer-events:none}
#area-map .area-artwork .landmark-art{position:absolute;width:var(--area-art);height:var(--area-art);left:calc(50% - var(--area-art)/2);bottom:12px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(1px 3px 1px #365c7640)}
#area-map .area-artwork.selected .landmark-art{transform:translateY(-4px) scale(1.08)}
#area-map .area-artwork.no-matches{opacity:.45}

/* Real video thumbnails retain a regional fallback until an image succeeds. */
.video-visual{height:auto;aspect-ratio:16/9}
.video-thumbnail{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .15s}
.video-visual.thumbnail-loaded .video-thumbnail{opacity:1}
.video-visual.thumbnail-loaded .visual-place,.video-visual.thumbnail-loaded .visual-caption,.video-visual.thumbnail-loaded::after{display:none}
.video-visual.thumbnail-loaded .play-symbol{background:#102033b8;box-shadow:0 1px 5px #0003}

.video-categories{display:flex;gap:10px;margin:25px 0 8px}
.video-categories button{flex:1;max-width:260px;min-height:52px;border:1px solid #dce3f0;background:#fff;border-radius:12px;font-size:14px;font-weight:800;padding:12px 16px;display:flex;align-items:center;justify-content:center;gap:12px}
.video-categories button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff}
.video-categories b{font-size:11px;background:#edf2fd;color:#2d4a8d;border-radius:20px;min-width:28px;padding:1px 7px}
.category-note{font-size:11px;color:var(--muted);margin:0 0 12px}
.map-column[hidden]{display:none}
@media(max-width:620px){.video-categories{gap:8px;margin-top:20px}.video-categories button{font-size:12px;padding:11px 8px;gap:7px}.category-note{font-size:10px}}

/* A taxi driver's guide, with a city-at-work hero and a clear audience. */
.driver-intro.intro{display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:28px;background:#172c3d;color:#fff9e9;border:1px solid #243f52;border-radius:22px;position:relative;overflow:hidden;padding:46px 42px;margin-top:16px;min-height:330px}
.driver-eyebrow{display:inline-flex;align-items:center;gap:8px;color:#f4ce58;font-size:12px;font-weight:750;letter-spacing:.06em}
.driver-eyebrow i{display:inline-block;width:7px;height:7px;border-radius:2px;background:#f4ce58}
.driver-intro.intro h1{font-size:clamp(30px,3.5vw,46px)!important;line-height:1.5;letter-spacing:-.05em;color:#fff9e9;margin:18px 0 16px;font-weight:850;white-space:nowrap}
.driver-intro.intro h1 span{color:#f4ce58}
.driver-intro.intro p{font-size:12px;line-height:1.9;color:#c6d3da;margin:0;max-width:none}
.driver-topics{list-style:none;display:flex;gap:7px;flex-wrap:wrap;padding:0;margin:22px 0 0}
.driver-topics li{border:1px solid #50616a;background:#ffffff08;color:#e8ece8;padding:4px 10px;font-size:10px;border-radius:6px}
.driver-illustration{min-width:0;text-align:center;align-self:center}
.driver-illustration svg{display:block;width:100%;height:auto;max-height:290px}
.driver-art-caption{font-size:10px;letter-spacing:.13em;color:#c9d7da}
@media(max-width:900px){.driver-intro.intro{padding:30px 26px;gap:12px}.driver-eyebrow{font-size:10px}.driver-intro.intro h1{font-size:33px!important}.driver-intro.intro p{font-size:11px}}
@media(max-width:620px){.driver-intro.intro{grid-template-columns:minmax(0,1fr);gap:6px;padding:24px 22px 16px;min-height:0;border-radius:18px;margin-top:5px;margin-bottom:20px}.driver-eyebrow{font-size:10px;letter-spacing:.02em}.driver-intro.intro h1{font-size:28px!important;line-height:1.5;margin:13px 0 12px}.driver-intro.intro p{font-size:11px;max-width:none}.driver-intro.intro p br{display:block}.driver-topics{gap:6px;margin-top:15px}.driver-topics li{font-size:9px;padding:3px 8px}.driver-illustration{width:100%;max-width:280px;justify-self:center;margin-top:3px}.driver-illustration svg{height:140px}.driver-art-caption{font-size:8px;letter-spacing:.08em}.brand-sub{font-size:9px}}
@media(max-width:355px){.driver-intro.intro{padding:22px 17px 15px}.driver-intro.intro h1{font-size:24px!important}.driver-eyebrow{font-size:9px}.driver-intro.intro p{font-size:10px}}

/* Put counts inside each town plaque, so the number can never float away. */
#area-map.pixel-map.floating-island .geo-pin.has-landmark>span{display:inline-flex;align-items:center;gap:6px;padding:4px 5px 4px 7px}
#area-map .geo-pin.has-landmark>span::before{display:none}
#area-map .geo-pin .map-video-count{display:inline-flex;align-items:center;justify-content:center;position:static;width:auto;height:auto;min-width:29px;min-height:20px;margin:0;padding:2px 5px;border:0;border-radius:4px;background:#254c65;color:#fff;font-size:11px;line-height:1.2;font-weight:850;box-shadow:none;opacity:1}
#area-map .geo-pin.selected .map-video-count{background:#72561b;color:#fff9dc}
.landmark-card b{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px}
.landmark-card .landmark-count{background:#e6eef5;color:#254c65;font-size:10px;line-height:1.4;padding:2px 5px;border-radius:4px;white-space:nowrap}
@media(max-width:620px){#area-map .geo-pin .map-video-count{font-size:10px;min-width:27px;min-height:19px}#area-map.pixel-map.floating-island .geo-pin.has-landmark>span{gap:5px}}

/* Continuous arterial roads and local names remain crisp while zooming. */
#area-map .leaflet-overlay-pane img[alt="主要幹線道路24路線"]{image-rendering:auto}
#area-map .road-name-label{display:inline-block;transform:translate(-50%,-50%);background:#fffef5f5;border:1px solid #617b83;border-radius:4px;box-shadow:0 1px 3px #23485820;color:#254e5e;padding:3px 7px;font-size:10px;line-height:1.35;font-weight:750;letter-spacing:.02em;white-space:nowrap}

/* The city continues outside the target area; blue dashes identify the video-map scope. */
#area-map.pixel-map.floating-island{background:#e9edeb;box-shadow:inset 0 0 40px #becbc522;border-color:#c5d7d5}
.surrounding-mainland{pointer-events:none;image-rendering:auto!important}
.pixel-map-legend .legend-scope{width:18px;height:0;background:none;box-shadow:none;border-top:1px dashed #357d98}
.pixel-map-legend .legend-outside{background:#e9edeb;box-shadow:none;border:1px solid #cbd6d1}

/* Leaflet vector renderers use their viewport dimensions, not the zero-width pane. */
/* Leaflet sets overlay dimensions at every zoom, including when animations are disabled. */
#area-map .leaflet-pane > svg.leaflet-zoom-animated,
#area-map .leaflet-pane > svg.leaflet-image-layer{width:auto;max-height:none}

.street-network-layer{pointer-events:none;image-rendering:auto!important}
#area-map .street-name-label{font-size:9px;color:#596a64;background:#fffff5ed;border-color:#adbcb2;padding:1px 5px;box-shadow:0 1px 2px #20352b18}

/* Compact endorsement beside the service identity, with the official logo intact. */
header{gap:20px}
.header-endorsement{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:9px 13px;background:#fff;border:1px solid #e1e8e4;border-radius:12px;line-height:1.5}
.endorsement-logo{display:block;line-height:0;background:#fff}
.endorsement-logo img{display:block;width:125px;height:auto;max-width:none}
.endorsement-badge{display:inline-flex;align-items:center;gap:5px;color:#254f43;font-size:11px;font-weight:800;white-space:nowrap}
.endorsement-badge>span{display:inline-grid;place-items:center;width:15px;height:15px;background:#f8df83;color:#254f43;border-radius:50%;font-size:10px}
.endorsement-operator{font-size:9px;color:#667670;white-space:nowrap}
.driver-intro.intro .endorsement-copy{font-size:11px;color:#dce7ed;border-left:2px solid #d8b755;padding-left:10px;line-height:1.8;margin-top:15px}
@media(max-width:620px){header{gap:12px;align-items:center}.brand{min-width:0}.header-endorsement{padding:7px 8px;gap:3px;border-radius:10px}.endorsement-logo img{width:100px}.endorsement-badge{font-size:10px;gap:4px}.endorsement-badge>span{width:13px;height:13px;font-size:9px}.endorsement-operator{font-size:8px}.driver-intro.intro .endorsement-copy{font-size:10px;margin-top:12px}}

@media(max-width:360px){header{gap:8px}.header-endorsement{padding:6px}.endorsement-logo img{width:86px}.endorsement-badge{font-size:9px}.endorsement-operator{font-size:7px}.brand{font-size:20px;white-space:nowrap}.brand small{font-size:5.5px;letter-spacing:.1em}.brand-sub{font-size:7px}.brand .brand-icon{width:27px;height:27px;font-size:11px;margin-right:3px}}

/* Product-colored banner ads with full-width mobile presentation. */
.service-ads{margin:0 0 25px}.service-ads-heading{display:flex;align-items:center;gap:8px;margin-bottom:10px}.ad-disclosure{padding:1px 7px;border:1px solid #cbd2db;border-radius:4px;color:#65717e;font-size:9px;line-height:1.6}.service-ads-heading h2{font-family:inherit;font-size:11px;font-weight:600;color:#697787}.service-ad-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.service-ad{display:block;overflow:hidden;border:1px solid #293440;border-radius:12px;background:#0c1016;color:#00e8a2;text-decoration:none}.service-ad-hl{background:#07182b;color:#34d4ef;border-color:#126078}.service-ad-banner{display:block;width:100%;height:auto;aspect-ratio:3/1}.service-ad-cta{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:9px 14px;font-size:11px;font-weight:750}.service-ad:hover,.service-ad:focus-visible{outline:2px solid currentColor;outline-offset:2px}@media(max-width:620px){.service-ad-grid{grid-template-columns:1fr;gap:12px}.service-ads-heading h2{font-size:10px}.service-ad-cta{padding:8px 12px;font-size:10px}.service-ads{margin-bottom:21px}}

/* Road detail takes priority over decorative landmarks. */
#area-map.map-detailed .orientation-art,#area-map.map-detailed .geo-landmark-label:not([data-feature="皇居"]){display:none!important}
#area-map .intersection-label{position:absolute;left:0;top:0;display:flex;align-items:center;gap:3px;white-space:nowrap;font:600 10px/20px -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:#334c59;background:#fffffff2;border:1px solid #a4bac5;border-radius:5px;padding:0 5px;box-shadow:0 1px 2px #20352b18;transform:translate(-50%,-50%);pointer-events:none}
.intersection-label .signal-symbol{font-size:12px}.intersection-label::after{content:"";position:absolute;left:50%;bottom:-7px;height:5px;border-left:1px solid #557888}

.arterial-road-layer{pointer-events:none;image-rendering:auto!important}

@media(max-width:620px){.map-tools .pixel-map-label{flex-basis:100%;margin-bottom:2px}.map-tools{gap:7px}.map-tools button{padding:8px 10px}}

/* Only visible road-name buttons receive taps; their overlay leaves map gestures intact. */
#area-map button.road-name-label{pointer-events:auto!important;cursor:pointer;font-family:inherit;margin:0;min-height:25px;touch-action:manipulation}
#area-map button.road-name-label[hidden]{display:none!important}
#area-map button.road-name-label.road-selected{background:#fff0b3;border-color:#bc7a00;color:#654000;box-shadow:0 0 0 2px #f2ba3c66}
#area-map button.road-name-label:focus-visible{outline:3px solid #285cba;outline-offset:3px}
.road-selection-control{display:flex;align-items:center;gap:10px;padding:7px 9px;background:#fffdf5f5;border:1px solid #c4ad69;border-radius:7px;color:#574516;font-size:11px;box-shadow:0 1px 4px #20352b22;max-width:calc(100vw - 110px)}
.road-selection-control[hidden]{display:none}.road-selection-control button{border:1px solid #bc7a00;background:#fff4ca;color:#654000;border-radius:4px;padding:4px 8px;cursor:pointer;font-size:11px}

/* Landmarks remain as small orientation cues even at street-detail zoom. */

#area-map.map-detailed .area-artwork{opacity:1}
#area-map.map-detailed .area-artwork.no-matches{opacity:.8}
#area-map.map-detailed .area-artwork.selected{opacity:1}

/* City scale prioritizes area landmarks; street detail restores road contrast. */
#area-map.map-landmark-focus .road-name-label:not(.road-selected),
#area-map.map-landmark-focus .intersection-label{opacity:.4}
#area-map.map-landmark-focus .road-name-label:hover,
#area-map.map-landmark-focus .road-name-label:focus-visible{opacity:1}
#area-map.map-landmark-focus .area-artwork{opacity:1}
#area-map.map-landmark-focus .area-artwork.no-matches{opacity:.85}

/* The foot of each landmark is its surveyed geographic anchor. */
#area-map .area-artwork{width:1px;height:1px;transform:none;bottom:0;left:0}
#area-map .area-artwork .landmark-art{bottom:0;left:calc(0px - var(--area-art)/2)}

#area-map .intersection-label::after{display:none}
#area-map .intersection-leader{position:absolute;left:50%;top:50%;width:1px;height:1px;overflow:visible;z-index:-1;pointer-events:none}
.intersection-leader line{stroke:#557888;stroke-width:1}
.intersection-leader circle{fill:#557888;stroke:#fff;stroke-width:1}

/* Area names and counts stay immediately beneath their geographic landmark. */
#area-map .geo-pin.has-landmark{bottom:auto;top:5px;left:0;transform:none;width:1px;height:1px;min-height:0;padding:0;border:0;background:none;box-shadow:none}
#area-map .geo-pin.has-landmark>span{top:0;bottom:auto;left:0;transform:translateX(-50%);margin:0}
#area-map .geo-pin.has-landmark.label-hidden{visibility:hidden;pointer-events:none}

#area-map .river-layer{image-rendering:auto}

/* Compact overview callouts show all area landmarks with their counts. */
#area-map.map-area-overview .geo-pin.has-landmark>span{font-size:8px;padding:2px 3px;gap:3px;letter-spacing:0;line-height:1.2}
#area-map.map-area-overview .geo-pin .map-video-count{font-size:8px;min-width:20px;min-height:14px;padding:1px 3px}
#area-map.map-area-overview .geo-pin{pointer-events:auto}
#area-map.map-area-overview .area-artwork.no-matches{opacity:.85}
@media(max-width:620px){#area-map.pixel-map.floating-island{height:680px}}
@media(max-width:370px){#area-map.pixel-map.floating-island{height:980px}}

#area-map.map-area-overview .geo-pin.no-matches{opacity:.75}

#area-map .geographic-ground{image-rendering:auto}

/* Ordinary facilities use a smaller sprite and never carry a video badge. */
#area-map .ordinary-landmark-marker{background:none;border:0;}
#area-map .ordinary-landmark{position:absolute;display:block;padding:0;border:0;border-radius:3px;background:transparent;box-shadow:none;pointer-events:auto;cursor:pointer;overflow:visible;}
#area-map .ordinary-landmark[hidden],#area-map .ordinary-landmark-name[hidden]{display:none!important;}
#area-map .ordinary-landmark img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;image-rendering:pixelated;filter:drop-shadow(0 1px 1px #183d4933);}
#area-map .ordinary-landmark:focus-visible{outline:2px solid #267b9b;outline-offset:3px;}
#area-map .ordinary-landmark-name{position:absolute;top:calc(100% + 4px);width:max-content;max-width:220px;padding:4px 7px;border:1px solid #aebfc2;border-radius:5px;background:#fffdf4;color:#244653;font:600 11px/1.4 system-ui,-apple-system,"Noto Sans JP",sans-serif;white-space:normal;box-shadow:0 2px 4px #183d4920;pointer-events:none;}

/* TAXI TUNES' original 8-bit field presentation. Precise geography is archived for Chirishiru. */
#area-map.rpg-mode{background:#a4cb58;border:3px solid #496b36;border-radius:12px;box-shadow:inset 0 0 0 3px #e6d792;}
#area-map.rpg-mode .geographic-ground{image-rendering:pixelated;}
#area-map.rpg-mode .geo-pin.has-landmark>span{background:#fff9df;border-color:#4d5d37;box-shadow:2px 3px 0 #36552e66;border-radius:2px;}
#area-map.rpg-mode .geo-pin.has-landmark.selected>span{background:#ffe46b;border-color:#385430;}
#area-map.rpg-mode .area-artwork .landmark-art{filter:drop-shadow(1px 2px 0 #35552e66);}
#area-map.rpg-mode .map-compass{background:#fff9df;border:2px solid #64784c;box-shadow:2px 2px 0 #37522d66;}
#area-map.rpg-mode .leaflet-control-zoom{border:2px solid #64784c!important;border-radius:3px!important;box-shadow:2px 3px 0 #37522d66!important;}
#area-map.rpg-mode .leaflet-control-zoom a{background:#fff9df;color:#395732;}
.rpg-context-marker{background:none;border:0;}
.rpg-context-label{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font-size:9px;font-weight:800;padding:2px 4px;border:1px solid #325d67;background:#d8f1fa;color:#234f70;box-shadow:1px 2px 0 #254c5766;pointer-events:none;}
.rpg-context-label.rpg-park{background:#e3edb1;color:#35572b;border-color:#628143;}

/* Shallow raised-field view: only the geographic plane is foreshortened. */
#area-map.rpg-mode .area-artwork::before{content:"";position:absolute;left:calc(var(--area-art) * -.36);bottom:-3px;width:calc(var(--area-art) * .72);height:7px;border-radius:50%;background:#30451d45;pointer-events:none;}
#area-map.rpg-mode .area-artwork .landmark-art{filter:drop-shadow(3px 4px 1px #2e431d55);}
#area-map.rpg-mode .ordinary-landmark::before{content:"";position:absolute;left:15%;right:15%;bottom:-2px;height:6px;border-radius:50%;background:#30451d45;pointer-events:none;}
#area-map.rpg-mode .ordinary-landmark img{position:relative;filter:drop-shadow(2px 3px 1px #2e431d55);}

/* 32-bit-era city palette: fine paving with upright, smoothly sampled artwork. */
#area-map.rpg-mode{background:#bfc5c6;border-color:#768b93;box-shadow:inset 0 0 0 2px #d6dcdb;}
#area-map.rpg-mode .geographic-ground,#area-map.rpg-mode .area-artwork .landmark-art,#area-map.rpg-mode .ordinary-landmark img{image-rendering:auto;}
#area-map.rpg-mode .geo-pin.has-landmark>span{background:#faf9f0;border-color:#607580;box-shadow:1px 3px 4px #253b4a35;}
#area-map.rpg-mode .map-compass,#area-map.rpg-mode .leaflet-control-zoom{border-color:#80939b!important;box-shadow:1px 2px 4px #253b4a30!important;}
#area-map.rpg-mode .leaflet-control-zoom a{background:#fafbf7;color:#385868;}
#area-map.rpg-mode .area-artwork::before,#area-map.rpg-mode .ordinary-landmark::before{background:#344b5540;filter:blur(1px);}

#area-map.rpg-mode~.pixel-map-legend .legend-road,.pixel-map-legend .legend-road{background:#69757c;border-color:#59676f;box-shadow:1px 1px 0 #a4afb4;}

#area-map.rpg-mode .city-street-ground{image-rendering:auto;}
#area-map.rpg-mode{background:#c9c9bf;}
#area-map.rpg-mode .area-artwork .landmark-art{filter:drop-shadow(2px 4px 1px #33434d50);}

.landmark-card .popup-gallery-art{display:block;width:96px;height:96px;margin:0 auto;overflow:hidden}
