*{box-sizing:border-box}html,body{margin:0;height:100%;background:#fff;color:#111;font:15px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}
a{color:inherit}
.top{position:fixed;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;gap:16px;padding:12px 20px;background:#fff;border-bottom:1px solid #eee}
.brand{font-weight:900;font-size:22px;letter-spacing:.5px;text-decoration:none}.brand span{color:#c8102e}
.tag{color:#555;font-size:13px;border-left:1px solid #ccc;padding-left:14px}
.tog{margin-left:auto;display:flex;border:1px solid #ddd;border-radius:999px;overflow:hidden}.tog button{border:0;background:#fff;padding:6px 16px;font:inherit;cursor:pointer}.tog .on{background:#111;color:#fff}
.cta{background:#c8102e;color:#fff;text-decoration:none;padding:8px 16px;border-radius:999px;font-weight:700}
#vp{position:fixed;inset:0;overflow:hidden;cursor:grab;touch-action:none;background:#fff}#vp.drag{cursor:grabbing}
#world{position:absolute;left:0;top:0;transform-origin:0 0;width:1536px;height:1024px}#world img{width:100%;height:100%;display:block;user-select:none;transition:filter .3s}
.b{position:absolute;display:block;border-radius:16px}
.b span{position:absolute;left:50%;top:0;transform:translate(-50%,-30%);background:#fff;border:1px solid #ddd;border-radius:12px;padding:6px 12px;font-weight:800;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.b small{display:block;font-weight:400;font-size:12px;color:#555}
.b:hover span,.b:focus span{border-color:#c8102e;color:#c8102e}
.b.merch span{border-style:dashed}
body.focus #world img{filter:grayscale(1) brightness(.55)}body.focus .b span{box-shadow:0 0 0 2px #c8102e}
.intro{position:fixed;left:20px;top:70px;z-index:4;background:#fff;padding:10px 14px;border-radius:10px;border:1px solid #eee;pointer-events:none}.intro h1{margin:0;font-size:22px}.intro p{margin:2px 0 0;color:#555}
.ctl,.zoom{position:fixed;bottom:16px;z-index:5;display:flex;gap:8px;align-items:center;background:#fff;border:1px solid #ddd;border-radius:999px;padding:6px 10px;font-size:13px}
.ctl{left:16px}.zoom{right:16px}.ctl button,.zoom button{border:1px solid #ddd;background:#fff;border-radius:999px;padding:4px 12px;font:inherit;cursor:pointer}
#focus[aria-pressed=true]{background:#111;color:#fff}
#list{position:fixed;inset:60px 0 0;z-index:6;background:#fff;overflow:auto;padding:20px}#list ul{list-style:none;padding:0;max-width:640px}#list li a{display:block;padding:14px;border:1px solid #eee;border-radius:10px;margin:8px 0;text-decoration:none}#list b{display:block;font-size:17px}.ai{font-size:13px;color:#555}
@media(max-width:720px){.tag,.cta,.zoom,.ctl,.intro,#vp{display:none}#list{display:block!important}.tog{display:none}}
.b span{opacity:0;transition:opacity .2s}.b.merch span,body.focus .b span,.b:hover span,.b:focus span{opacity:1}.b:hover,.b:focus{outline:3px solid #c8102e;outline-offset:-3px}.intro{display:none}
body.focus .b span{opacity:0}body.focus .b.merch span{opacity:1}body.focus .b{outline:3px solid #fff;outline-offset:-3px}body.focus #world img{filter:grayscale(.6) brightness(.6)}
