#app-boot-overlay { --boot-bg: #0b0d11; --boot-panel: #151922; --boot-border: #343c49; --boot-text: #f4f6f8; --boot-muted: #abb5c3; --boot-accent: #a99ef8; --boot-brand-start: #f0aa74; --boot-brand-mid: #cf633d; --boot-brand-end: #8f3827; position: fixed; inset: 0; z-index: 2147483647; display: grid; place-items: center; padding: 24px; background: var(--boot-bg); color: var(--boot-text); font: 500 14px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif; text-align: center; opacity: 1; visibility: visible !important; transition: opacity .18s ease; } :root[data-theme=light] #app-boot-overlay { --boot-bg: #f7f4ee; --boot-panel: #fffdf9; --boot-border: #cbc3b8; --boot-text: #29251f; --boot-muted: #625a50; --boot-accent: #6251bf; --boot-brand-start: #c9794e; --boot-brand-mid: #ae5d3c; --boot-brand-end: #7c3d2c; } #app-boot-overlay.is-ready { opacity: 0; pointer-events: none; } #app-boot-overlay .app-boot-card { width: min(100%, 390px); } #app-boot-overlay .app-boot-brand { position: relative; display: inline-block; max-width: 100%; margin: 0 auto 25px; padding: 0 8px 11px; line-height: 1; } #app-boot-overlay .app-boot-wordmark { position: relative; display: block; white-space: nowrap; font-size: calc(clamp(42px, 10vw, 57px)); font-weight: 800; letter-spacing: -.035em; line-height: 1.13; background: linear-gradient(110deg, var(--live-gradient-start, var(--boot-brand-start)) 0, var(--live-gradient-mid, var(--boot-brand-mid)) 48%, var(--live-gradient-end, var(--boot-brand-end)) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; animation: app-boot-wordmark-breathe 2.8s ease-in-out infinite; } #app-boot-overlay .app-boot-wordmark:after { content: "RustPad"; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(100deg, transparent 35%, hsla(0, 0%, 100%, .7) 50%, transparent 65%); background-size: 250% 100%; background-position: 100%; -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; animation: app-boot-wordmark-shine 3.1s ease-in-out infinite; } #app-boot-overlay .app-boot-brand:after { content: ""; position: absolute; bottom: 0; left: 12%; width: 76%; height: 2px; border-radius: 50px; background: linear-gradient(90deg, transparent, var(--boot-accent), transparent); opacity: .75; transform: scaleX(.35); animation: app-boot-brand-underline 2.8s ease-in-out infinite; } #app-boot-overlay h2 { margin: 0 0 9px; font-size: 21px; font-weight: 720; letter-spacing: -.035em; color: var(--boot-text); } #app-boot-overlay #app-boot-stage { margin: 0 0 23px; color: var(--boot-muted); min-height: 22px; } #app-boot-overlay .app-boot-track { height: 6px; overflow: hidden; border-radius: 100px; background: var(--boot-border); } #app-boot-overlay #app-boot-progress-fill { height: 100%; width: 0; background: var(--boot-accent); border-radius: inherit; transition: width .14s ease; } #app-boot-overlay #app-boot-count { margin: 10px 0 18px; font-size: 12px; color: var(--boot-muted); overflow-wrap: anywhere; } #app-boot-overlay .app-boot-steps { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; padding: 0; margin: 0; list-style: none; } #app-boot-overlay .app-boot-steps li { padding: 4px 8px; border: 1px solid var(--boot-border); border-radius: 7px; font-size: 10px; color: var(--boot-muted); background: var(--boot-panel); } #app-boot-overlay .app-boot-steps li[data-status=done] { color: var(--boot-accent); border-color: var(--boot-accent); } #app-boot-overlay .app-boot-steps li[data-status=active] { color: var(--boot-text); } #app-boot-overlay #app-boot-retry { margin-top: 18px; padding: 10px 18px; border: 1px solid var(--boot-accent); border-radius: 8px; background: var(--boot-panel); color: var(--boot-text); cursor: pointer; } #app-boot-overlay #app-boot-retry[hidden] { display: none; } @keyframes app-boot-wordmark-breathe { 0%, to { transform: translateY(0); } 50% { transform: translateY(-2px); } } @keyframes app-boot-wordmark-shine { 0%, 20% { background-position: 100%; } 70%, to { background-position: -100%; } } @keyframes app-boot-brand-underline { 0%, to { transform: scaleX(.35); opacity: .4; } 50% { transform: scaleX(1); opacity: .85; } } #app-boot-overlay.has-error .app-boot-brand:after, #app-boot-overlay.has-error .app-boot-wordmark, #app-boot-overlay.has-error .app-boot-wordmark:after { animation: none; } @media(prefers-reduced-motion:reduce) { #app-boot-overlay, #app-boot-overlay #app-boot-progress-fill { transition: none; } #app-boot-overlay .app-boot-brand:after, #app-boot-overlay .app-boot-wordmark, #app-boot-overlay .app-boot-wordmark:after { animation: none; } }