*{box-sizing:border-box}body{margin:0;background:#adcbd4;color:#183a3c;font-family:system-ui,"Microsoft JhengHei",sans-serif}#scene{display:block;width:100%;height:100dvh;touch-action:none}header{position:absolute;top:0;left:0;right:0;padding:24px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}h1{margin:4px 0;font-size:38px}small{font-weight:700;letter-spacing:.1em}a,button{pointer-events:auto;min-height:44px;border:1px solid #789a93;border-radius:10px;background:#f3f6e9ef;color:#183a3c;padding:10px 14px;font:inherit;text-decoration:none;cursor:pointer}button:disabled{opacity:.5;cursor:default}button[aria-pressed=true]{background:#245f60;color:white}.controls{position:absolute;bottom:16px;left:16px;max-width:490px;padding:14px;background:#f7f5e5e8;border-radius:16px;box-shadow:0 6px 24px #163c4022}nav,.actions{display:flex;gap:6px;flex-wrap:wrap}.actions{margin-top:8px}p{margin:10px 0 0;font-size:14px}.note{font-size:12px;color:#466561}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #eac462;outline-offset:3px}@media(max-width:600px){header{padding:14px}h1{font-size:28px}small{font-size:10px}header a{font-size:12px;padding:10px}.controls{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));padding:10px}nav button{flex:1;padding:8px;font-size:13px}.note{font-size:11px}}

.ropeway-controls{display:flex;gap:6px;margin-top:8px}.ropeway-controls button{flex:1;font-size:13px;padding:8px 10px}.ride-progress{margin-top:9px;font-size:12px;color:#245f60}.ride-progress progress{display:block;width:100%;height:7px;margin-top:5px;accent-color:#b44332}.controls{width:min(490px,calc(100% - 32px));max-height:calc(100dvh - 160px);overflow:auto}nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}nav button{min-width:0}header a{white-space:nowrap}
@media(max-width:600px){.controls{width:auto;max-height:calc(100dvh - 145px)}.ropeway-controls button{font-size:12px;padding:8px 4px}.actions{display:grid;grid-template-columns:44px 44px 1fr 1fr}.actions button{min-width:0;padding:8px 4px;font-size:12px}.note{line-height:1.5}}
@media(max-height:520px) and (orientation:landscape){header{padding:12px;right:310px;display:block}header h1{font-size:26px}header a{display:inline-flex;font-size:12px;margin-top:6px}.controls{left:auto;right:8px;bottom:8px;width:292px;max-height:calc(100dvh - 112px);padding:10px}.ropeway-controls button{font-size:12px;padding:8px 4px}.actions{display:grid;grid-template-columns:44px 44px 1fr 1fr}.actions button{padding:8px 3px;font-size:12px}.note{font-size:10px}}
@media(max-width:420px) and (orientation:portrait){body #scene-travel-toggle.scene-travel-floating{top:88px;right:10px}body #release-notice-toggle.release-notice-floating{top:88px;right:124px}}
@media(max-height:520px) and (orientation:landscape){body #scene-travel-toggle.scene-travel-floating{top:124px;left:12px;right:auto}body #release-notice-toggle.release-notice-floating{top:176px;left:12px;right:auto}}
#toggle-controls{position:absolute;top:84px;right:16px;font-size:13px}.controls[hidden]{display:none}@media(max-width:420px) and (orientation:portrait){#toggle-controls{top:142px;right:10px}}@media(max-height:520px) and (orientation:landscape){#toggle-controls{top:228px;left:12px;right:auto}}
/* Reserve the 44px toggle at y142 plus an 8px gap above the scrollable menu. */
@media(max-width:420px) and (orientation:portrait){.controls{max-height:calc(100dvh - 202px)}}
