/* 首頁／分類頁載入中畫面「遊戲正在傳送中…」（機器人指揮中心風格，2026-10-03）。#boot 在 web/index.html，portal.js 的 screen() 顯示第一個畫面時移除。
   機器人站在綠色傳送台上：傳送光柱、往外擴散的光圈、注音往上飄進光柱、四角星閃爍、星軌繞行；文字逐字波浪跳、三個點輪流亮；下方條紋傳送條。全部 CSS 動畫。 */
#boot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:min(560px,68vh);padding:20px 0 30px;overflow:hidden;font-family:inherit}
#boot[hidden]{display:none}
.bt-stage{position:relative;width:300px;height:300px}
.bt-beam{position:absolute;left:50%;bottom:44px;width:120px;height:240px;translate:-50% 0;border-radius:60px 60px 10px 10px;background:linear-gradient(0deg,rgba(143,203,106,.55),rgba(201,230,169,.25) 60%,rgba(233,246,214,0));filter:blur(1px);animation:bt-beam 1.6s ease-in-out infinite}
@keyframes bt-beam{50%{opacity:.55;transform:scaleX(.88)}}
.bt-pad{position:absolute;left:50%;bottom:22px;width:190px;height:46px;translate:-50% 0;border-radius:50%;background:radial-gradient(ellipse,#C9E6A9 0 30%,#8FCB6A 55%,#3E9A4A 75%,#1F6B3A 100%);box-shadow:0 8px 0 #17502B,0 16px 26px rgba(23,80,43,.3)}
.bt-pad::after{content:'';position:absolute;inset:8px 24px;border-radius:50%;border:3px dashed rgba(255,255,255,.75);animation:bt-spin 4s linear infinite}
@keyframes bt-spin{to{transform:rotate(360deg)}}
.bt-ring{position:absolute;left:50%;bottom:30px;width:150px;height:34px;translate:-50% 0;border-radius:50%;border:3px solid #8FCB6A;opacity:0;animation:bt-ring 2.4s ease-out infinite}
.bt-ring:nth-of-type(2){animation-delay:.8s}.bt-ring:nth-of-type(3){animation-delay:1.6s}
@keyframes bt-ring{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.7);opacity:0}}
.bt-robot{position:absolute;left:50%;bottom:58px;width:150px;translate:-50% 0;animation:bt-hover 2.2s ease-in-out infinite}
.bt-robot img{display:block;width:100%;filter:drop-shadow(0 10px 12px rgba(31,107,58,.25))}
@keyframes bt-hover{50%{transform:translateY(-14px)}}
.bt-orbit{position:absolute;left:50%;top:70px;width:250px;height:72px;translate:-50% 0;border:2px dashed rgba(143,203,106,.6);border-radius:50%;animation:bt-orbit 6s linear infinite}
.bt-orbit i{position:absolute;width:16px;height:16px;background:#3E9A4A;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}
.bt-orbit i:nth-child(1){left:-8px;top:28px}.bt-orbit i:nth-child(2){right:-8px;top:28px;background:#8FCB6A}.bt-orbit i:nth-child(3){left:117px;bottom:-8px;background:#C9E6A9}
@keyframes bt-orbit{to{transform:rotate(360deg)}}
.bt-zy{position:absolute;bottom:60px;font-size:26px;font-weight:900;color:#3E9A4A;opacity:0;animation:bt-up 2.8s ease-in infinite}
.bt-zy:nth-of-type(1){left:92px;animation-delay:0s}.bt-zy:nth-of-type(2){left:186px;animation-delay:.7s;color:#1F6B3A}.bt-zy:nth-of-type(3){left:128px;animation-delay:1.4s;color:#8FCB6A}.bt-zy:nth-of-type(4){left:160px;animation-delay:2.1s}
@keyframes bt-up{0%{transform:translateY(20px) scale(.6);opacity:0}25%{opacity:1}100%{transform:translateY(-200px) scale(1.15) rotate(12deg);opacity:0}}
.bt-star{position:absolute;width:18px;height:18px;background:#8FCB6A;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);animation:bt-twinkle 2s ease-in-out infinite}
.bt-star:nth-of-type(1){left:12px;top:40px}.bt-star:nth-of-type(2){right:16px;top:20px;animation-delay:.5s;background:#3E9A4A}.bt-star:nth-of-type(3){left:30px;bottom:90px;animation-delay:1s;width:12px;height:12px}.bt-star:nth-of-type(4){right:30px;bottom:110px;animation-delay:1.4s;background:#C9E6A9}.bt-star:nth-of-type(5){left:140px;top:0;animation-delay:.8s;width:12px;height:12px}
@keyframes bt-twinkle{0%,100%{transform:scale(.4) rotate(0);opacity:.3}50%{transform:scale(1.15) rotate(45deg);opacity:1}}
.bt-text{display:flex;align-items:flex-end;gap:2px;margin:0;font-size:30px;font-weight:900;color:#1F6B3A;letter-spacing:.04em}
.bt-text b{display:inline-block;animation:bt-wave 1.6s ease-in-out infinite}
.bt-text b:nth-child(2){animation-delay:.08s}.bt-text b:nth-child(3){animation-delay:.16s}.bt-text b:nth-child(4){animation-delay:.24s}.bt-text b:nth-child(5){animation-delay:.32s}.bt-text b:nth-child(6){animation-delay:.4s}.bt-text b:nth-child(7){animation-delay:.48s}
@keyframes bt-wave{0%,60%,100%{transform:none}30%{transform:translateY(-10px);color:#3E9A4A}}
.bt-dots{display:inline-flex;gap:3px;margin-left:4px}.bt-dots i{font-style:normal;color:#8FCB6A;animation:bt-dot 1.2s steps(1) infinite}.bt-dots i:nth-child(2){animation-delay:.2s}.bt-dots i:nth-child(3){animation-delay:.4s}
@keyframes bt-dot{0%,100%{opacity:.25}40%,70%{opacity:1;color:#1F6B3A}}
.bt-bar{position:relative;width:260px;height:16px;border-radius:999px;background:#E9F6D6;box-shadow:inset 0 0 0 2px #CFE6B6;overflow:hidden}
.bt-bar::before{content:'';position:absolute;inset:3px;border-radius:999px;background:repeating-linear-gradient(-45deg,#8FCB6A 0 10px,#3E9A4A 10px 20px);background-size:28px 28px;animation:bt-stripe .7s linear infinite,bt-fill 2.6s ease-in-out infinite}
@keyframes bt-stripe{to{background-position:28px 0}}@keyframes bt-fill{0%{right:96%}70%,100%{right:3px}}
.bt-sub{margin:-4px 0 0;font-size:15px;font-weight:800;color:#5C7A5E}
@media(max-height:700px){#boot{min-height:min(420px,62vh);gap:10px}.bt-stage{transform:scale(.78);margin:-30px 0}.bt-text{font-size:24px}}
@media(prefers-reduced-motion:reduce){#boot *,#boot *::before,#boot *::after{animation:none!important}.bt-zy{opacity:0}}
