*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}body{touch-action:none}.webgl{position:fixed;top:0;left:0;width:100%;height:100%;outline:none;touch-action:none}.points-container{touch-action:none}button,input,.range{touch-action:manipulation}.screen-lens{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;background:radial-gradient(circle at center,#ffffff14,#ffffff05 32%,#0000003d),linear-gradient(180deg,#ffffff0f,#00000024);mix-blend-mode:screen;opacity:.7}.loading-bar{position:absolute;top:50%;width:100%;height:2px;background:#fff;transform:scaleX(.3);transform-origin:top left;transition:transform .5s;z-index:20}.loading-bar.ended{transform:scaleX(0);transform-origin:100% 0;transition:transform 1.5s ease-in-out}.points-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}.point{position:absolute;top:50%;left:50%;pointer-events:none}.point .label{position:absolute;top:-23px;left:-23px;width:46px;height:46px;border-radius:50%;background:#0007;border:1px solid #ffffff77;color:#fff;font-family:Helvetica,Arial,sans-serif;text-align:center;line-height:46px;font-weight:100;font-size:14px;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transform:scale(0);transition:transform .3s,background .2s}.point.visible .label{transform:scale(1)}.point .label:hover{background:#ffb02033;border-color:#ffb020aa}.point .text{position:absolute;top:30px;left:-120px;width:220px;padding:16px 18px;border-radius:6px;background:#000a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #ffffff33;border-top:2px solid #ffb020;color:#fff;line-height:1.4em;font-family:Helvetica,Arial,sans-serif;font-weight:100;font-size:13px;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .25s ease,transform .25s ease}.point .text h3{font-size:14px;font-weight:600;margin-bottom:6px;letter-spacing:.02em}.point .text p{color:#fffc;margin:0}.point .text .hint{display:inline-block;margin-top:10px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#ffb020}.point .label:hover+.text,.point .label:focus-visible+.text{opacity:1;transform:translateY(0);pointer-events:auto}.hud-shell{position:fixed;left:50%;bottom:20px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;z-index:30;pointer-events:none}.hud-panel,.hud-actions,.hud-panel *,.hud-actions *{pointer-events:auto}.hud-panel{display:flex;align-items:center;gap:18px;min-width:min(720px,calc(100vw - 24px));max-width:min(720px,calc(100vw - 24px));padding:12px 16px 10px;border-radius:18px;background:#0a0a0cb8;border:1px solid rgba(255,255,255,.18);border-top:2px solid #ffb020;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 16px 32px #00000047;transition:transform .3s ease,opacity .3s ease}.hud-panel__section{display:flex;align-items:center}.hud-panel__controls{flex:1 1 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 14px}.legend-item{display:flex;align-items:center;gap:8px;color:#fffc;font-family:Helvetica,Arial,sans-serif;font-size:11px;line-height:1.3}.legend-mark{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:#ffffff0d;color:#fff;font-weight:700;flex-shrink:0}.legend-mark--action{font-size:11px}.legend-mark--info{font-size:16px;line-height:1}.main-toggle-row{display:flex;align-items:center;justify-content:center;gap:10px;min-width:170px}.rotor-label{color:#fffc;font-family:Helvetica,Arial,sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.rotor-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #ffb020;border-radius:999px;background:#680f0f;color:#fff;min-height:44px;padding:10px 16px;font-family:Helvetica,Arial,sans-serif;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .2s ease,transform .2s ease,box-shadow .2s ease;box-shadow:0 0 0 1px #ffffff14}.rotor-toggle.is-on{background:#156e3b;border-color:#ffb020}.rotor-toggle.is-on:hover{background:#1a7a46}.rotor-toggle:not(.is-on):hover{background:#a72828}.rotor-toggle:active{transform:translateY(1px)}.annotation-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:#ffffff0a;color:#fff;min-height:42px;padding:9px 14px;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .2s ease,border-color .2s ease,transform .2s ease}.annotation-toggle.is-off{background:#ffffff05;border-color:#ffffff24;color:#d9d9d9}.annotation-toggle:hover{border-color:#ffb020e6}.annotation-toggle:active{transform:translateY(1px)}.hud-actions{display:flex;align-items:center;gap:10px;z-index:20}.ui-toggle,.reset-view-toggle{position:relative;z-index:20;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:#080a0eb3;color:#fff;min-height:42px;padding:9px 14px;font-family:Helvetica,Arial,sans-serif;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 20px #0000002e;transition:transform .2s ease,opacity .2s ease}.reset-view-toggle{border-color:#ffb020cc;background:#ffb0201f}body.ui-hidden .hud-panel{transform:translateY(140%);opacity:0;pointer-events:none}body.ui-hidden .ui-toggle{transform:translateY(0);pointer-events:auto}body.annotations-hidden .points-container{opacity:0;visibility:hidden;pointer-events:none}.speed-control,.rotation-control{display:flex;align-items:center;gap:10px}.speed-control label,.rotation-control label,.rotation-control output{color:#fffc;font-family:Helvetica,Arial,sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.speed-control input[type=range],.rotation-control input[type=range]{width:160px;accent-color:#ffb020;touch-action:pan-y}.rotation-control output{min-width:38px;color:#ffb020;text-align:right}@media(max-width:700px){.hud-panel{display:flex;flex-wrap:wrap;gap:8px;width:min(100%,calc(100vw - 16px));min-width:0;padding:10px 10px 8px}.hud-panel__controls{flex:1 1 100%;display:flex;flex-direction:column;align-items:stretch;justify-content:center;width:100%;min-width:0;gap:8px}.main-toggle-row{width:100%;justify-content:space-between;min-width:0}.rotor-label{letter-spacing:.05em}.annotation-toggle{align-self:center;min-height:42px;padding:8px 12px}.speed-control,.rotation-control{width:100%;justify-content:space-between;gap:6px}.speed-control label,.rotation-control label,.rotation-control output{font-size:9px;letter-spacing:.04em}.speed-control input[type=range],.rotation-control input[type=range]{width:min(110px,calc(100% - 78px));min-width:0;flex:1 1 auto}.rotation-control output{min-width:30px}.point .label{width:48px;height:48px;top:-24px;left:-24px;line-height:48px}}@media(max-width:340px){.hud-panel{padding-inline:8px}.main-toggle-row{gap:6px}.rotor-toggle{min-height:40px;padding:8px 10px;font-size:9px}.speed-control label,.rotation-control label{max-width:54px;line-height:1.2}.speed-control input[type=range],.rotation-control input[type=range]{width:min(96px,calc(100% - 60px))}.point .label{width:50px;height:50px;top:-25px;left:-25px;line-height:50px}}
