/* The same structural carrier, seams and blue steel palette as Android SplashAssemblyView. */
[v-cloak] { display: none !important; }
html.tcy-starting #app { visibility: hidden !important; }
.tcy-startup {
    position: fixed; inset: 0; z-index: 2147483001; display: grid; place-items: center;
    overflow: hidden; background: #061527; color: #f7faff;
    font-family: "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;
    transition: opacity 180ms ease-out; isolation: isolate;
}
.tcy-startup[hidden] { display: none; }
.tcy-startup.is-complete { opacity: 0; pointer-events: none; }
.tcy-startup-art { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; }
.tcy-startup-art svg { width: 100%; height: 100%; position: absolute; mask-image: linear-gradient(to bottom, #000 50%, transparent 92%); }
.tcy-assembly-panel { fill: #0a2543; stroke: #3668a4; stroke-width: .8; }
.tcy-assembly-panel--top { animation: tcy-panel-top 640ms cubic-bezier(.16, 1, .3, 1) both; }
.tcy-assembly-panel--lower { fill: #0c2a4c; animation: tcy-panel-lower 720ms cubic-bezier(.16, 1, .3, 1) both; }
.tcy-assembly-circuit { stroke: #3e84dd; stroke-width: .8; opacity: .6; }
.tcy-assembly-piece { stroke: #7ab0ee; stroke-width: .9; }
.tcy-assembly-piece--left { fill: #e7f0fa; animation: tcy-piece-left 640ms cubic-bezier(.16, 1, .3, 1) both; }
.tcy-assembly-piece--right { fill: #f9fcff; animation: tcy-piece-right 680ms cubic-bezier(.16, 1, .3, 1) both; }
.tcy-assembly-piece--bottom { fill: #dbe8f7; animation: tcy-piece-bottom 740ms cubic-bezier(.16, 1, .3, 1) both; }
.tcy-assembly-seam { stroke: #5c97e6; stroke-width: .8; opacity: .65; }
.tcy-assembly-energy { stroke: #68b4ff; stroke-width: 1.8; stroke-dasharray: 9 91; animation: tcy-energy 2200ms linear infinite; }
.tcy-assembly-lock { fill: #ffc75c; }
.tcy-startup-brand { position: absolute; inset: 0; pointer-events: none; }
.tcy-startup-logo {
    position: absolute; width: 76px; height: 76px; object-fit: contain;
    left: calc(50% - 38px); top: calc(50% - max(5.3vw, 8.28125vh) - 38px);
}
.tcy-startup-copy { position: relative; margin-top: 286px; width: min(440px, calc(100vw - 40px)); text-align: center; }
.tcy-startup-copy h1 { margin: 0; font-size: 28px; line-height: 1.4; font-weight: 500; color: #f7faff; }
.tcy-startup-subtitle { margin: 8px 0 30px; font-size: 14px; color: #aabbd2; }
.tcy-startup-status { min-height: 24px; margin: 0; font-size: 14px; line-height: 24px; color: #d4e2f5; }
.tcy-startup-recovery { margin-top: 20px; }
.tcy-startup-recovery button {
    padding: 10px 24px; min-height: 44px; border: 1px solid #7ab0ee; border-radius: 6px;
    font: inherit; color: #f7faff; background: #164a80; cursor: pointer;
}
.tcy-startup-recovery button:hover { background: #1d5cb0; }
.tcy-startup-recovery button:focus-visible { outline: 2px solid #ffc75c; outline-offset: 4px; }
.tcy-startup[data-phase="error"] .tcy-assembly-energy { animation: none; }
.tcy-startup-paused .tcy-startup * { animation-play-state: paused !important; }
@keyframes tcy-panel-top { from { transform: translate(70px, -85px); } to { transform: translate(0, 0); } }
@keyframes tcy-panel-lower { from { transform: translate(-85px, 65px); } to { transform: translate(0, 0); } }
@keyframes tcy-piece-left { from { transform: translate(-100px, -36px); opacity: .25; } to { transform: translate(0, 0); opacity: 1; } }
@keyframes tcy-piece-right { from { transform: translate(90px, -50px); opacity: .25; } to { transform: translate(0, 0); opacity: 1; } }
@keyframes tcy-piece-bottom { from { transform: translate(0, 100px); opacity: .25; } to { transform: translate(0, 0); opacity: 1; } }
@keyframes tcy-energy { to { stroke-dashoffset: -100; } }
@media (max-width: 600px) {
    .tcy-startup-copy { margin-top: 270px; }
    .tcy-startup-copy h1 { font-size: 26px; }
}
@media (max-height: 540px) {
    .tcy-startup-art, .tcy-startup-brand { transform: translateY(-60px); }
    .tcy-startup-copy { margin-top: 200px; }
    .tcy-startup-subtitle { margin-bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .tcy-startup, .tcy-startup * { animation: none !important; transition: none !important; }
}
