/* Shared page chrome for every GPUIX browser example. */ * { box-sizing: border-box; } html, body { margin: 0; width: 100%; height: 100%; overflow: hidden; background: #11111b; } canvas { display: block; width: 100%; height: 100%; touch-action: none; } #gpuix-loader { position: fixed; inset: 0; display: grid; place-items: center; color: #fafafa; font: 14px/1.5 Inter, ui-sans-serif, system-ui, sans-serif; } #gpuix-loader > div { display: flex; flex-direction: column; align-items: center; gap: 14px; } #gpuix-loader strong { font-size: 15px; font-weight: 500; letter-spacing: -0.01em; } #gpuix-loader span { color: #8b8b96; font-size: 13px; } #gpuix-loader i { width: 18px; height: 18px; border: 2px solid #34343e; border-top-color: #fafafa; border-radius: 50%; animation: gpuix-spin 0.8s linear infinite; } @keyframes gpuix-spin { to { transform: rotate(360deg); } } /* The app draws every glyph itself, so the browser must not treat the page as a document: a long press would otherwise select the whole body and pop the iOS callout, and a tap would flash the tap highlight over the full-screen canvas. GPUIX handles long press and selection in its own code. */ html, body, canvas { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; -webkit-tap-highlight-color: transparent; } /* GPUI's hidden IME textarea still needs a real selection for composition, backspace context, and clipboard. */ [data-gpui-input] { -webkit-user-select: text !important; user-select: text !important; }