:root{color-scheme:dark;background:#080a0f}*{box-sizing:border-box}html,body,#app{width:100%;min-width:320px;height:100%;min-height:100%;margin:0;overflow:hidden}body{background:#080a0f;font-family:Inter,Avenir Next,Helvetica,Arial,sans-serif}#app{position:fixed;inset:0;background:#080a0f}#app canvas{display:block;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%}#app[data-boot-state=loading],#app[data-boot-state=failed]{background:linear-gradient(180deg,#121821b8,#05070bf5),#07090d;color:#f8fbff}#app[data-boot-state=failed]{cursor:pointer}#app[data-boot-state=loading] canvas,#app[data-boot-state=failed] canvas{visibility:hidden}#app[data-boot-state=loading]:before,#app[data-boot-state=failed]:before,#app[data-boot-state=loading]:after,#app[data-boot-state=failed]:after{position:absolute;left:50%;z-index:2;transform:translate(-50%);pointer-events:none}#app[data-boot-state=loading]:before,#app[data-boot-state=failed]:before{top:calc(50% - 28px);content:"GridFlow";font-size:1rem;font-weight:700;line-height:1;letter-spacing:0;text-rendering:geometricprecision;text-shadow:0 0 24px rgba(126,208,255,.2)}#app[data-boot-state=loading]:after{top:calc(50% + 14px);width:48px;height:2px;border-radius:2px;background:linear-gradient(90deg,#7ed0ff29,#7ed0ffd6,#7ed0ff29);content:"";opacity:.72;animation:gridflow-boot-pulse 1.35s ease-in-out infinite}#app[data-boot-state=failed]:after{top:calc(50% + 6px);min-width:112px;min-height:44px;display:grid;place-items:center;padding:0 18px;border:1px solid rgba(194,221,255,.28);border-radius:8px;background:#0f161fd1;box-shadow:0 14px 38px #00000052,inset 0 1px #ffffff14;color:#e8f3ff;content:attr(data-boot-label);font-size:.875rem;font-weight:650;line-height:1;letter-spacing:0}#app[data-boot-state=failed]:focus-visible:after{outline:2px solid rgba(232,243,255,.92);outline-offset:4px}@keyframes gridflow-boot-pulse{0%,to{opacity:.32;transform:translate(-50%) scaleX(.72)}50%{opacity:.9;transform:translate(-50%) scaleX(1)}}@media(prefers-reduced-motion:reduce){#app[data-boot-state=loading]:after{animation:none;opacity:.72;transform:translate(-50%)}}
