/* One themed surface from first paint through readiness; no dark interstitial. */
.fe-opening{position:fixed;inset:0;z-index:1000;overflow:hidden;isolation:isolate;display:grid;place-items:center;color:var(--color-text,#17213b);font-family:var(--font-base,system-ui)}
.fe-opening-panel{position:absolute;inset:0 50% 0 0;background:var(--color-surface,#F3EDE2);will-change:transform}
.fe-opening-panel.right{inset:0 0 0 50%}
.fe-opening-signature{position:relative;text-align:center;padding:28px;max-width:90%;overflow-wrap:anywhere}
.fe-opening-mark{position:relative;display:block;width:42px;height:42px;box-sizing:border-box;border:9px solid var(--color-primary,#3453f4);border-radius:50%;margin:0 auto 24px}
.fe-opening-mark:after{content:'';position:absolute;right:-9px;top:-9px;width:13px;height:13px;background:var(--color-bg,#fff);border-radius:2px}
.fe-opening-brand{margin:0;font-size:clamp(32px,6vw,68px);font-weight:650;letter-spacing:-.045em;line-height:1.15}
.fe-opening-brand:empty,.fe-opening-index:empty{display:none}
.fe-opening-index{display:block;margin-top:24px;font-size:10px;letter-spacing:.16em;color:var(--color-text-muted,#5e6b82)}
.fe-opening-progress{position:relative;overflow:hidden;width:88px;height:2px;background:var(--color-border,#e3e8f1);margin:30px auto 0;border-radius:2px}
.fe-opening-progress:after{content:'';position:absolute;inset:0;background:var(--color-primary,#3453f4);animation:fe-loading-progress 1.8s ease-in-out infinite}
@keyframes fe-loading-progress{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.fe-opening[data-phase=opening] .fe-opening-progress,.fe-opening[data-phase=error] .fe-opening-progress{visibility:hidden}
.fe-opening-skip{position:absolute;bottom:32px;bottom:max(32px,env(safe-area-inset-bottom));right:32px;background:none;color:var(--color-text-muted,#5e6b82);border:0;border-bottom:1px solid var(--color-border,#e3e8f1);padding:10px 0;font:12px var(--font-base,system-ui);cursor:pointer}
.fe-opening-skip[hidden]{display:none}
.fe-opening-skip:focus-visible{outline:2px solid var(--color-primary,#3453f4);outline-offset:8px}
.fe-opening-message{max-width:380px;font-size:14px;line-height:1.8}
html[data-fe-loading=true] body>:not(.fe-opening):not(script):not(style){visibility:hidden!important}
html[data-fe-opening=true]{--fe-motion-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.fe-opening-progress:after{animation:none;transform:scaleX(.5)}}

.fe-opening-logo{display:block;width:120px;height:170px;object-fit:contain;margin:0 auto 24px}.fe-opening-mark[hidden]{display:none}
.fe-opening-progress{width:24px;height:24px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;background:none;animation:fe-loader-turn 1.8s linear infinite}.fe-opening-progress:after{display:none}@keyframes fe-loader-turn{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.fe-opening-progress{animation:none}}

.fe-opening-logo[hidden]{display:none}

/* Direct start: no logo, marketing text or opening animation. Only a delayed
   centered hint for slow connections; the data guard itself never delays ready. */
.fe-opening[data-mode=direct]{background:var(--color-bg,#fff)}
.fe-opening[data-mode=direct] .fe-opening-panel,
.fe-opening[data-mode=direct] .fe-opening-logo,
.fe-opening[data-mode=direct] .fe-opening-mark,
.fe-opening[data-mode=direct] .fe-opening-brand,
.fe-opening[data-mode=direct] .fe-opening-index{display:none}
.fe-opening[data-mode=direct] .fe-opening-signature{visibility:hidden}
.fe-opening[data-mode=direct][data-hint=true] .fe-opening-signature,
.fe-opening[data-mode=direct][data-phase=error] .fe-opening-signature{visibility:visible}
.fe-opening[data-mode=direct] .fe-opening-progress{width:20px;height:20px;margin:0 auto;animation:none}
.fe-opening[data-mode=direct][data-hint=true] .fe-opening-progress{animation:fe-loader-turn 1.8s linear infinite}
@media(prefers-reduced-motion:reduce){.fe-opening[data-mode=direct] .fe-opening-progress{animation:none!important}}
