/* base.css - app shell, tokens, and global primitives */ @property --float-offset { syntax: ""; inherits: false; initial-value: 0px; } :root { --hud-scale: 1; --hud-offset: calc(20px * var(--hud-scale)); --hud-radius: calc(22px * var(--hud-scale)); --hud-panel-padding: calc(18px * var(--hud-scale)); --hud-panel-padding-sm: calc(13px * var(--hud-scale)); --hud-gap-xs: calc(7px * var(--hud-scale)); --hud-gap-sm: calc(11px * var(--hud-scale)); --hud-gap-md: calc(16px * var(--hud-scale)); --hud-gap-lg: calc(22px * var(--hud-scale)); --hud-font-size: calc(0.88rem * var(--hud-scale)); --hud-font-size-sm: calc(0.75rem * var(--hud-scale)); --hud-title-size: calc(1.02rem * var(--hud-scale)); --hud-kicker-size: calc(0.68rem * var(--hud-scale)); --hud-surface-top: rgba(17, 31, 53, 0.84); --hud-surface-bottom: rgba(7, 17, 31, 0.76); --hud-surface-overlay: rgba(157, 204, 255, 0.07); --hud-border: rgba(201, 225, 247, 0.14); --hud-border-hover: rgba(226, 238, 250, 0.24); --hud-border-active: rgba(235, 244, 255, 0.32); --hud-shadow: 0 18px 46px rgba(1, 7, 16, 0.34); --hud-shadow-soft: 0 10px 28px rgba(3, 10, 22, 0.22); --hud-highlight: rgba(248, 252, 255, 0.14); --hud-line: rgba(197, 220, 242, 0.1); --hud-title: #dbe8f5; --hud-text: #eef4fb; --hud-text-muted: #8ea3ba; --hud-text-soft: #6f849b; --hud-accent: #91baff; --hud-accent-strong: #d7e8ff; --glass-fill-top: rgba(255, 255, 255, 0.08); --glass-fill-bottom: rgba(109, 157, 214, 0.04); --glass-shadow: 0 16px 36px rgba(0, 0, 0, 0.2); --glass-glow: 0 0 18px rgba(123, 176, 236, 0.08); } * { margin: 0; padding: 0; box-sizing: border-box; } html, body, .earth-page { width: 100%; height: 100%; } body.earth-page { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; background-color: #0a0a1a; color: #fff; overflow: hidden; } .earth-app { position: relative; width: 100vw; height: 100vh; } .earth-app.dragging { cursor: grabbing; } .earth-filters { position: absolute; width: 0; height: 0; pointer-events: none; } .earth-loading { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 240; min-width: min(calc(320px * var(--hud-scale)), 78vw); padding: calc(26px * var(--hud-scale)); border-radius: calc(18px * var(--hud-scale)); border: 1px solid rgba(77, 184, 255, 0.34); background: radial-gradient(circle at 50% 18%, rgba(255, 255, 255, 0.12), transparent 35%), linear-gradient(180deg, rgba(13, 24, 46, 0.95), rgba(7, 14, 28, 0.94)); box-shadow: 0 0 30px rgba(77, 184, 255, 0.22), 0 16px 40px rgba(0, 0, 0, 0.28); text-align: center; color: #4db8ff; } .earth-loading-text { color: #4db8ff; } .earth-loading-title { font-size: calc(1.15rem * var(--hud-scale)); font-weight: 600; } .earth-loading-subtitle { margin-top: calc(10px * var(--hud-scale)); color: #9ab7d4; font-size: calc(0.84rem * var(--hud-scale)); line-height: 1.45; } .earth-loading-spinner { width: calc(40px * var(--hud-scale)); height: calc(40px * var(--hud-scale)); margin: 0 auto calc(15px * var(--hud-scale)); border: 4px solid rgba(77, 184, 255, 0.28); border-top: 4px solid #4db8ff; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes floatDock { 0%, 100% { --float-offset: 0px; } 50% { --float-offset: -2px; } }