*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;background:radial-gradient(128% 96% at 50% -10%,#0b1a2a,#04080f 38%,#02060f);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,Helvetica,Arial,sans-serif;color:#e5e7eb;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}canvas{display:block}.hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}.hud-panel{pointer-events:auto;background:#02060f8c;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:14px 18px;backdrop-filter:blur(14px) saturate(125%);-webkit-backdrop-filter:blur(14px) saturate(125%);box-shadow:0 8px 32px #00000059,inset 0 0 0 1px #ffffff0a;transition:background .3s ease,border-color .3s ease,transform .3s ease}.hud-brand{position:absolute;top:20px;left:20px;animation:slideInLeft .7s cubic-bezier(.16,1,.3,1) both}.brand-row{display:flex;align-items:center;gap:8px}.brand-mark{color:#4fd1a5;font-size:14px;line-height:1;filter:drop-shadow(0 0 6px rgba(79,209,165,.45))}.brand-name{font-size:14px;font-weight:750;letter-spacing:.14em;text-transform:uppercase;color:#e5e7eb;margin:0;text-shadow:0 0 18px rgba(79,209,165,.25)}.brand-sub{font-size:11px;color:#8ca0b3;letter-spacing:.08em;margin-top:2px}.hud-legend{position:absolute;top:20px;right:20px;display:flex;flex-direction:column;gap:8px;min-width:170px;animation:slideInRight .7s .05s cubic-bezier(.16,1,.3,1) both}.hud-legend-header{font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#6b7f94;margin-bottom:2px}.hud-legend-row{display:flex;align-items:center;gap:10px;font-size:12px;color:#b8c5d2;letter-spacing:.04em;padding:4px 6px;border-radius:8px;transition:transform .2s ease,color .2s ease,background .2s ease;cursor:default}.hud-legend-row:hover{transform:translate(-2px);background:#ffffff0a}.hud-legend-row.is-active{color:#f1f5f9;background:#ffffff0f}.hud-legend-row.is-dimmed{opacity:.45}.hud-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;transition:transform .2s ease}.hud-legend-row:hover .hud-dot{transform:scale(1.35)}.hud-legend-label{white-space:nowrap}.hud-hint{position:absolute;bottom:24px;left:50%;transform:translate(-50%);font-size:11px;color:#5a7189;letter-spacing:.1em;text-transform:uppercase;transition:opacity .8s;animation:fadeUp 1s .5s cubic-bezier(.16,1,.3,1) both}.hud-title-block{position:absolute;top:96px;left:50%;transform:translate(-50%);text-align:center;pointer-events:none;animation:fadeUp 1s .3s cubic-bezier(.16,1,.3,1) both}.hud-site-name{font-size:10px;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:#4fd1a5;margin:0;text-shadow:0 0 22px rgba(79,209,165,.28)}.hud-site-hint{font-size:10px;color:#536580;margin-top:4px;letter-spacing:.08em}.landmark-tooltip{position:absolute;pointer-events:none;background:#02060fd1;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:10px 14px;font-size:12px;color:#e5e7eb;white-space:nowrap;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 12px 40px #0000008c,inset 0 0 0 1px #ffffff0a;transform:translate(-50%,calc(-100% - 16px));animation:tooltipPop .2s cubic-bezier(.16,1,.3,1)}.landmark-tooltip .tt-name{font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px;font-size:12px}.landmark-tooltip .tt-sub{font-size:10px;color:#9aa3b2;letter-spacing:.06em;text-transform:uppercase}.hud-footer{position:absolute;bottom:20px;right:20px;font-size:10px;color:#2a3a4a;letter-spacing:.06em;animation:fadeIn 1.4s ease both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes tooltipPop{0%{opacity:0;transform:translate(-50%,calc(-100% - 22px)) scale(.95)}to{opacity:1;transform:translate(-50%,calc(-100% - 16px)) scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
