#plaza{font-family:Arial,"Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color:#fff;background:#7d918f;font-synthesis:none}#plaza *{box-sizing:border-box}body.bdl-plaza{margin:0}#plaza button, #plaza a, #plaza summary{-webkit-tap-highlight-color:transparent}#plaza button{font:inherit;color:inherit;cursor:pointer}#plaza a{color:inherit;text-decoration:none}#plaza button:focus-visible, #plaza a:focus-visible, #plaza summary:focus-visible, #plaza canvas:focus-visible{outline:3px solid #f4ca79;outline-offset:5px}#plaza button{border:0}#plaza{height:100svh;min-height:520px;position:relative;overflow:hidden}#plaza #world{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#plaza #world:active{cursor:grabbing}#plaza .vignette{pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,25,28,.34),transparent 22%,transparent 57%,rgba(11,25,26,.64))}#plaza .masthead{position:absolute;top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:32px 40px;gap:20px;pointer-events:none}#plaza .masthead>*{pointer-events:auto}#plaza .brand{display:flex;align-items:center;gap:13px;line-height:1.1;font-weight:800;letter-spacing:.12em;font-size:17px;text-shadow:0 1px 12px #263d4260}#plaza .brand-mark{font-size:44px;font-weight:normal;line-height:1;color:#f5d095}#plaza .brand-second{display:block;font-size:14px;letter-spacing:.24em;margin-top:6px}#plaza .location{display:flex;align-items:center;gap:16px;font-size:12px;font-weight:600;letter-spacing:.22em}#plaza .location-line{width:30px;height:1px;background:#fff6}#plaza details{position:relative}#plaza summary{list-style:none;cursor:pointer;padding:12px 17px;border:1px solid #ffffff70;border-radius:4px;font-size:14px;background:#18373124;backdrop-filter:blur(10px)}#plaza summary::-webkit-details-marker{display:none}#plaza summary span{margin-left:20px}#plaza details[open] summary{background:#17302d}#plaza nav{position:absolute;right:0;top:58px;width:286px;padding:22px;background:#142c29f5;box-shadow:0 15px 60px #0003;border:1px solid #ffffff20;border-radius:5px;z-index:9}#plaza nav>p{font-size:12px;letter-spacing:.14em;color:#d3c19b;margin:0 0 15px}#plaza nav a{display:flex;gap:18px;padding:18px 0;border-top:1px solid #ffffff24;font-size:17px}#plaza nav a>span{font-size:14px;color:#d3c19b}#plaza nav small{display:block;font-size:12px;letter-spacing:.1em;color:#c1d1cd;margin-top:7px}#plaza .scene-caption{position:absolute;left:40px;bottom:154px;pointer-events:none;text-shadow:0 2px 18px #061f2450}#plaza .scene-caption>span{font-size:12px;letter-spacing:.15em;color:#e6dfcd}#plaza .scene-caption h1{font-size:34px;line-height:1.3;letter-spacing:.14em;font-weight:500;margin:12px 0 10px}#plaza .scene-caption p{font-size:14px;letter-spacing:.06em;margin:0;color:#e2e7e4}#plaza .controls{position:absolute;bottom:30px;left:40px;right:40px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}#plaza .desktop-help{display:flex;gap:13px;align-items:center;min-width:190px}#plaza .desktop-help>span{display:flex;flex-direction:column;align-items:center;gap:4px}#plaza .key-row{display:flex;gap:4px}#plaza kbd{font-family:inherit;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid #ffffff75;border-radius:3px;font-size:12px;color:#fff9}#plaza .desktop-help p{font-size:14px;line-height:1.8;margin:0}#plaza .desktop-help p span{display:block;font-size:12px;color:#e1e6e3aa}#plaza .destinations{text-align:center}#plaza .destinations>p{margin:0 0 12px;font-size:12px;letter-spacing:.09em;color:#eff4ed}#plaza .destinations>p:empty{display:none}#plaza .destinations>div{display:flex;gap:10px}#plaza .destination{background:#193731dc;border:1px solid #a3c2b569;padding:14px 18px;font-size:14px;border-radius:4px;backdrop-filter:blur(12px);display:flex;align-items:center;gap:12px;transition:background .2s,transform .2s}#plaza .destination>span{font-size:12px;font-weight:700;color:#a7d1ba}#plaza .destination.amber{background:#423a29df;border-color:#d3b58261}#plaza .destination.amber>span{color:#e8c487}#plaza .destination:hover{background:#2a5146;transform:translateY(-2px)}#plaza .destination.amber:hover{background:#655238}#plaza .reset{font-size:12px;min-width:190px;text-align:right;background:transparent;padding:14px 0;color:#ffffffad}#plaza .crosshair{position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:#fffc;box-shadow:0 0 0 3px #0001;pointer-events:none}#plaza .marker{position:absolute;display:flex;align-items:center;gap:8px;transform:translate(-50%,-100%);pointer-events:none;white-space:nowrap;text-shadow:0 1px 8px #0008}#plaza .marker b{display:grid;place-items:center;font-size:12px;font-weight:600;border-radius:50%;border:1px solid #ffffff85;width:30px;height:30px;background:#203e36b0}#plaza .marker>span{font-size:13px}#plaza .marker-amber b{background:#685136ad}#plaza .visit{position:absolute;left:50%;bottom:135px;transform:translateX(-50%);width:min(520px,calc(100% - 40px));padding:23px 25px;display:flex;justify-content:space-between;align-items:center;gap:18px;background:#142e2aeb;border:1px solid #b1c9bc6b;border-radius:5px;box-shadow:0 16px 45px #0003;backdrop-filter:blur(12px)}#plaza .visit[hidden]{display:none}#plaza .visit span{font-size:12px;color:#d2c197;letter-spacing:.13em}#plaza .visit h2{font-size:23px;margin:8px 0;font-weight:500;letter-spacing:.07em}#plaza .visit p{font-size:12px;color:#d6e0d9;margin:0}#plaza .visit>a{white-space:nowrap;padding:14px 18px;border-radius:3px;background:#eed7a8;color:#1b332d;font-size:14px;font-weight:600}#plaza.near .scene-caption{opacity:0}#plaza .touch-controls{display:none}#plaza #loading{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;gap:15px;background:#142b29;z-index:15;font-size:14px;letter-spacing:.08em}#plaza #loading[hidden]{display:none}#plaza .loader{width:20px;height:20px;border:1px solid #d7c29444;border-top-color:#d7c294;border-radius:50%;animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#plaza #fallback{position:absolute;inset:0;background:#183a34;padding:130px 25px 40px;text-align:center;z-index:4}#plaza #fallback p{font-size:16px;line-height:1.9}#plaza #fallback a{display:block;max-width:300px;margin:20px auto;padding:18px;border:1px solid #d2bd8a}#plaza .noscript{position:absolute;top:140px;left:20px;right:20px;padding:25px;background:#17352f;z-index:20}#plaza.failed .scene-caption, #plaza.failed .controls, #plaza.failed .crosshair, #plaza.failed .destination-labels, #plaza.failed .touch-controls{display:none}#plaza.failed .masthead{z-index:5}
@media(max-width:900px){#plaza .location{display:none}#plaza .masthead{padding:24px}#plaza .controls{left:24px;right:24px}#plaza .desktop-help{min-width:135px}#plaza .reset{min-width:100px}#plaza .scene-caption{left:24px;font-size:28px}}
@media(pointer:coarse){#plaza .touch-controls{display:flex;position:absolute;bottom:130px;left:25px;right:25px;justify-content:space-between;align-items:center;pointer-events:none}#plaza .touch-controls p{font-size:12px;line-height:1.7;text-align:right;color:#fff9}#plaza .desktop-help{display:none}#plaza #joystick{width:94px;height:94px;border:1px solid #ffffff5e;border-radius:50%;background:#0c292e22;position:relative;touch-action:none;pointer-events:auto;backdrop-filter:blur(3px)}#plaza #stick{position:absolute;width:36px;height:36px;left:28px;top:28px;border-radius:50%;border:1px solid #ffffff70;background:#ffffff30}#plaza .joystick-label{position:absolute;top:100px;left:0;width:100%;text-align:center;font-size:12px;color:#fffa}#plaza .controls{justify-content:center}#plaza .reset{position:absolute;right:0;bottom:77px;min-width:0}#plaza .scene-caption{bottom:275px}#plaza .visit{bottom:270px}}
@media(max-width:767px){#plaza .scene-caption{display:none}}
@media(max-width:600px){#plaza{min-height:500px}#plaza .masthead{padding:21px 19px;align-items:flex-start}#plaza .brand{font-size:13px;gap:8px}#plaza .brand-second{font-size:11px;letter-spacing:.2em;margin-top:5px}#plaza .brand-mark{font-size:34px}#plaza summary{font-size:12px;padding:11px 12px}#plaza summary span{margin-left:8px}#plaza nav{width:270px}#plaza .scene-caption{bottom:264px;left:22px}#plaza .scene-caption>span{font-size:10px;letter-spacing:.13em}#plaza .scene-caption h1{font-size:27px;margin:10px 0 8px}#plaza .scene-caption p{font-size:12px}#plaza .controls{left:18px;right:18px;bottom:calc(21px + env(safe-area-inset-bottom));justify-content:center}#plaza .desktop-help{display:none}#plaza .destinations{width:100%}#plaza .destinations>div{gap:8px}#plaza .destination{padding:14px 11px;gap:8px;font-size:13px;flex:1;justify-content:center}#plaza .destinations>p{font-size:12px}#plaza .reset{position:absolute;right:0;bottom:77px;min-width:0;font-size:12px}#plaza .touch-controls{bottom:calc(130px + env(safe-area-inset-bottom))}#plaza .touch-controls p{margin-bottom:30px}#plaza .visit{bottom:calc(259px + env(safe-area-inset-bottom));padding:18px;flex-wrap:wrap;gap:15px}#plaza .visit h2{font-size:21px}#plaza .visit>a{padding:12px 15px;font-size:13px}#plaza .visit p{font-size:12px;line-height:1.6}#plaza .marker>span{font-size:12px}#plaza .marker b{width:25px;height:25px}#plaza .crosshair{width:4px;height:4px}#plaza.near .touch-controls p{opacity:.6}}
@media(max-height:600px) and (orientation:landscape){#plaza .masthead{padding:16px 25px}#plaza .scene-caption{display:none}#plaza .controls{bottom:16px}#plaza .visit{bottom:105px;padding:15px;max-width:470px}#plaza .touch-controls{bottom:95px}#plaza .touch-controls p{display:none}#plaza .reset{bottom:75px}#plaza .destination{padding:10px 15px}}
@media(prefers-reduced-motion:reduce){#plaza *, #plaza *:before, #plaza *:after{animation:none!important;transition:none!important}}
#plaza [hidden]{display:none!important}

/* The sign carries the routes; this compact duplicate supports touch and keyboard. */
#plaza .visit{bottom:25px;width:min(640px,calc(100% - 40px));display:block;padding:12px 15px;backdrop-filter:blur(12px)}
#plaza .visit h2{font-size:13px;letter-spacing:.04em;line-height:1.4;margin:0 0 9px;color:#dbe7df}
#plaza .visit-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
#plaza .visit-actions a,#plaza .visit-actions button{display:flex;align-items:center;justify-content:center;min-height:44px;padding:9px 8px;border:1px solid #ffffff50;border-radius:3px;background:transparent;color:#fff;font-size:13px;line-height:1.4;text-align:center}
#plaza .visit-actions a:first-child{background:#eed7a8;border-color:#eed7a8;color:#1b332d}
#plaza .visit-actions a:hover,#plaza .visit-actions button:hover{background:#fff;color:#17382e}
#plaza.near .destinations,#plaza.near .desktop-help{visibility:hidden;pointer-events:none}
#plaza.near .controls{pointer-events:none}
#plaza.near .controls .reset{pointer-events:auto}
#plaza #board-teams{width:min(620px,calc(100% - 32px));max-height:calc(100svh - 48px);margin:auto;padding:25px;border:1px solid #97b6a7;border-radius:8px;background:#15382f;color:#fff;box-shadow:0 25px 90px #0007;overflow:auto;overscroll-behavior:contain}
#plaza #board-teams::backdrop{background:#061a1ab3;backdrop-filter:blur(3px)}
#plaza .board-teams-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}
#plaza .board-teams-heading p{font-size:12px;color:#d9c79e;margin:0 0 7px}
#plaza .board-teams-heading h2{font-size:21px;font-weight:500;line-height:1.5;margin:0}
#plaza #board-teams-close{flex:none;min-height:44px;padding:8px;background:transparent;font-size:12px;color:#d5e1d9}
#plaza .board-team-leagues{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
#plaza .board-team-leagues h3{font-size:13px;font-weight:500;margin:0 0 10px;color:#d9c79e}
#plaza .board-team-leagues ul{list-style:none;padding:0;margin:0}
#plaza .board-team-leagues li+li{margin-top:7px}
#plaza .board-team-leagues a{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:10px 13px;border:1px solid #ffffff40;border-radius:3px;font-size:14px;line-height:1.4}
#plaza .board-team-leagues a::after{content:'→';color:#b8cfc2}
#plaza .board-team-leagues a:hover{background:#e9d9b4;color:#17382e}
#plaza .board-team-leagues a:hover::after{color:inherit}
#plaza.failed .visit{display:none}
@media(pointer:coarse){#plaza.near .touch-controls{bottom:140px}#plaza.near .touch-controls p{display:none}}
@media(max-width:767px){
 #plaza .visit{bottom:calc(21px + env(safe-area-inset-bottom));width:calc(100% - 36px);padding:12px}
 #plaza .visit-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 #plaza .visit-actions a,#plaza .visit-actions button{font-size:12px;padding:8px 6px}
 #plaza.near .touch-controls{bottom:calc(190px + env(safe-area-inset-bottom))}
 #plaza.near .reset{bottom:155px}
 #plaza #board-teams{padding:19px 15px;max-height:calc(100svh - 32px)}
 #plaza .board-teams-heading{gap:8px;margin-bottom:17px}
 #plaza .board-teams-heading h2{font-size:17px}
 #plaza .board-team-leagues{gap:12px}
 #plaza .board-team-leagues a{font-size:12px;padding:10px 8px}
}
@media(max-height:600px) and (orientation:landscape){
 #plaza .visit{bottom:12px;width:min(560px,calc(100% - 240px));padding:9px 12px}
 #plaza .visit h2{margin-bottom:6px;font-size:12px}
 #plaza .visit-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
 #plaza .visit-actions a,#plaza .visit-actions button{font-size:11px;padding:6px;min-height:40px}
 #plaza.near .touch-controls{bottom:100px}
 #plaza.near .reset{bottom:75px}
}

#plaza #visit-reset{display:none}
@media(max-width:767px) and (max-height:800px) and (orientation:portrait){
 #plaza.near .touch-controls{top:76px;bottom:auto}
 #plaza.near .joystick-label{display:none}
 #plaza.near .reset{display:none}
 #plaza .visit-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
 #plaza .visit-heading h2{margin:0}
 #plaza #visit-reset{display:block;background:transparent;color:#e5eee8;font-size:11px;min-height:32px;padding:5px 7px;white-space:nowrap}
}
