.frame{padding-bottom:calc(82px + var(--safeB));}
.row{--course-gap:58px;position:relative;width:calc(var(--btnW) + var(--btnW) + var(--course-gap));max-width:100%;gap:var(--course-gap);align-items:flex-start;padding-bottom:38px;}
.course{width:var(--btnW);flex:0 0 var(--btnW);--lit-bg:#fff4b5;--lit-border:#ffe078;--lit-glow:rgba(255,205,60,.75);}
.course--blue{--lit-bg:#d8f5ff;--lit-border:#83dcff;--lit-glow:rgba(49,165,255,.75);}
.course--green{--lit-bg:#d9ffe1;--lit-border:#88efaa;--lit-glow:rgba(50,218,116,.75);}
.course-parade{position:absolute;left:0;right:0;bottom:0;margin-top:0;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);}
.course-track{display:flex;width:max-content;animation:course-scroll var(--scroll-duration) linear infinite;}
.course-group{display:flex;flex:0 0 auto;gap:4px;padding-right:4px;}
.course-tile{display:flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;border:1px solid rgba(255,255,255,.7);border-radius:8px;background:#f5f5f5;transition:background-color .2s,border-color .2s,box-shadow .2s;}
.course-tile img{display:block;width:24px;height:24px;object-fit:contain;}
.course.is-lit .course-tile,.course-launch .course-tile{background:var(--lit-bg);border-color:var(--lit-border);box-shadow:0 0 12px var(--lit-glow);}
.course.is-lit .btn{border-color:var(--lit-border);box-shadow:0 0 22px var(--lit-glow),inset 0 0 16px var(--lit-glow);}
.course.is-launching .course-track{animation-play-state:paused;}
.course-launch{position:fixed;inset:0;z-index:10002;pointer-events:none;}
.course-launch .course-tile{position:fixed;transform-origin:center;box-shadow:0 0 12px var(--lit-border),0 0 30px var(--lit-glow);animation:course-zoom .48s cubic-bezier(.2,.7,.2,1) both;}
@keyframes course-scroll{to{transform:translateX(-50%);}}
@keyframes course-zoom{from{transform:translate(0,0) scale(1);}to{transform:translate(var(--launch-x),var(--launch-y)) scale(var(--launch-scale));}}
.backArea{left:calc(24px + var(--safeL));top:calc(22px + var(--safeT));bottom:auto;transform:none;}
.backArea .backBtn{display:block;transform:none;}
.backBtn img{display:block;width:110px;height:50px;}
.backBtn .return-en,html[lang="en"] .backBtn .return-ja{display:none;}
html[lang="en"] .backBtn .return-en{display:block;}
#sfxToggle{display:flex;flex-direction:row;gap:6px;align-items:center;}
#sfxToggle .soundCircle{width:52px;height:52px;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;}
#sfxToggle .soundIcon{width:52px;height:52px;}
#sfxToggle .soundLabel{min-width:0;margin:0;padding:0;border:0;background:none;box-shadow:none;font-size:14px;}
@media(max-width:480px){.row{--course-gap:18px;}:root{--btnW:min(180px,calc((100vw - 46px - var(--safeL) - var(--safeR))/2));}.backArea{left:calc(14px + var(--safeL));top:calc(10px + var(--safeT));}.backBtn img{width:88px;height:40px;}}
@media(orientation:landscape) and (max-height:520px){.row{--course-gap:18px;}.backArea{left:calc(10px + var(--safeL));top:calc(8px + var(--safeT));transform:none;}.backBtn img{width:88px;height:40px;}.row{padding-bottom:34px;}}
@media(prefers-reduced-motion:reduce){.course-track{animation:none;}.course-tile{transition:none;}}

.map-bolt-icon{display:inline-block;width:.75em;height:1em;vertical-align:-.14em;object-fit:contain;filter:drop-shadow(0 0 .06em rgba(111,220,255,.95)) drop-shadow(0 0 .18em rgba(53,183,255,.65));}

.lang-toggle{
 position:fixed;right:calc(24px + var(--safeR));top:calc(22px + var(--safeT));z-index:1001;
 min-height:34px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.28);
 background:rgba(255,255,255,.14);color:#fff;font:700 13px system-ui,sans-serif;
 cursor:pointer;touch-action:manipulation;
}
@media(hover:hover) and (pointer:fine){
 .lang-toggle:hover{border-color:#83dcff;box-shadow:0 0 16px rgba(49,165,255,.65);}
}
.lang-toggle:focus-visible{outline:2px solid #83dcff;outline-offset:3px;}
.lang-toggle:active{transform:translateY(1px);}
@media(max-width:480px){.lang-toggle{right:calc(14px + var(--safeR));top:calc(10px + var(--safeT));}}
@media(orientation:landscape) and (max-height:520px){.lang-toggle{right:calc(10px + var(--safeR));top:calc(8px + var(--safeT));}}
