:root{--bg:#06070A;--text:#F8FAFC;--muted:#8793A5;--purple:#8B5CF6;--purple-bright:#9D74FF;--purple-soft:#C7A8FF}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden;background:var(--bg)!important;color:var(--text)}
body{font-family:"Geist",Inter,system-ui,sans-serif}
body::before,body::after{display:none!important}
.app-shell{position:fixed;inset:0;border:0;background:var(--bg);isolation:isolate}
.app-frame{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;border:0;outline:0;background:var(--bg);opacity:0;visibility:hidden;pointer-events:none;color-scheme:dark;transition:opacity .28s ease,visibility 0s linear .28s}
.app-frame.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .28s ease,visibility 0s}
.app-loader{position:absolute;inset:0;z-index:2;display:grid;place-items:center;overflow:hidden;background:var(--bg);opacity:1;visibility:visible;transition:opacity .24s ease,visibility 0s}
.app-loader.is-leaving{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease,visibility 0s linear .24s}
.app-loader__grid{position:absolute;inset:0;background:linear-gradient(rgba(148,163,184,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.014) 1px,transparent 1px),radial-gradient(circle at 50% 44%,rgba(139,92,246,.09),transparent 34%),var(--bg);background-size:100% 72px,96px 100%,auto,auto}
.app-loader__scan{position:absolute;left:18%;right:18%;top:24%;height:1px;background:linear-gradient(90deg,transparent,rgba(157,116,255,.74),transparent);box-shadow:0 0 18px rgba(139,92,246,.18);animation:appScan 2.2s ease-in-out infinite}
.app-loader__brand{position:absolute;top:max(20px,env(safe-area-inset-top));left:max(22px,env(safe-area-inset-left));color:rgba(248,250,252,.74);font:800 13px/1 "Geist Mono",monospace;letter-spacing:-.04em;text-decoration:none}.app-loader__brand span{color:var(--purple-soft)}
.app-loader__content{position:relative;z-index:1;width:min(620px,88vw);text-align:center}
.app-loader__kicker{margin:0;color:var(--purple-soft);font:700 10px/1 "Geist Mono",monospace;letter-spacing:.26em;text-transform:uppercase}
.app-loader h1{margin:26px 0 0;color:var(--text);font-size:clamp(32px,5vw,58px);font-weight:790;letter-spacing:-.058em;line-height:1.02}
.app-loader__status{min-height:1.2em;margin:25px 0 0;color:rgba(135,147,165,.64);font:600 9px/1.4 "Geist Mono",monospace;letter-spacing:.12em;text-transform:uppercase}
.app-loader__rail{width:min(310px,68vw);height:1px;margin:20px auto 0;overflow:hidden;background:rgba(148,163,184,.11)}
.app-loader__rail span{display:block;width:22%;height:100%;background:linear-gradient(90deg,rgba(139,92,246,.34),rgba(199,168,255,.94));box-shadow:0 0 14px rgba(139,92,246,.25);animation:loaderRail 1.15s ease-in-out infinite}
.app-loader__back{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);color:rgba(135,147,165,.44);font:600 8px/1 "Geist Mono",monospace;letter-spacing:.14em;text-transform:uppercase;text-decoration:none}.app-loader__back:hover{color:var(--purple-soft)}
@keyframes appScan{0%,100%{transform:translateY(-11vh);opacity:.10}50%{transform:translateY(38vh);opacity:.58}}
@keyframes loaderRail{0%{width:18%;transform:translateX(-10%)}60%{width:74%;transform:translateX(22%)}100%{width:18%;transform:translateX(460%);opacity:.35}}
@media(max-width:760px){.app-loader__scan{left:6%;right:6%}.app-loader h1{font-size:clamp(30px,10vw,46px)}.app-loader__status{font-size:8px}}
@media(prefers-reduced-motion:reduce){.app-frame,.app-loader{transition:none}.app-loader__scan,.app-loader__rail span{animation:none}.app-loader__scan{top:50%}.app-loader__rail span{width:58%}}
.app-loader__retry{appearance:none;min-height:38px;margin:22px auto 0;padding:0 16px;border:1px solid rgba(157,116,255,.34);border-radius:6px;background:rgba(139,92,246,.10);color:#F8FAFC;cursor:pointer;font:700 8px/1 "Geist Mono",monospace;letter-spacing:.12em;text-transform:uppercase}
.app-loader__retry:hover{border-color:rgba(199,168,255,.58);background:rgba(139,92,246,.16)}
