html.site-access-pending .desktop { visibility:hidden; }
.site-maintenance[hidden],.admin-preview-banner[hidden] { display:none!important; }
.site-maintenance { position:fixed; inset:0; z-index:1200; min-height:100dvh; overflow:auto; display:grid; place-items:center; padding:clamp(32px,7vh,90px) 20px; background:#fff; color:#111; font-family:"Courier New",monospace; }
.maintenance-simple { width:min(560px,100%); display:flex; flex-direction:column; align-items:center; }
.maintenance-pet-wrap { width:min(500px,78vw); aspect-ratio:1; display:grid; place-items:center; opacity:0; animation:maintenance-fade-in .35s steps(4,end) .08s forwards; }
.maintenance-pet { width:100%; height:100%; object-fit:contain; transform-origin:50% 88%; user-select:none; -webkit-user-drag:none; animation:maintenance-pet-bounce 2.15s cubic-bezier(.32,.72,.38,1) .45s infinite; }
.maintenance-workspace { width:min(440px,100%); margin-top:22px; position:relative; }
.maintenance-pane { border:2px solid #111; background:#eee; box-shadow:3px 3px 0 #aaa; }
.maintenance-pane-bar { min-height:29px; display:flex; align-items:center; justify-content:space-between; padding:5px 9px; border-bottom:2px solid #111; background:#d0d0d0; font-size:9px; font-weight:900; }
.maintenance-status-window { opacity:0; animation:maintenance-window-in .28s steps(3,end) .52s forwards,maintenance-jitter 9s steps(1,end) 2s infinite; }
.maintenance-status-card { margin:9px; padding:17px 18px 13px; border:2px solid #111; background:#fff; }
.maintenance-kicker { float:right; display:inline-block; padding:6px 9px; background:#111; color:#fff; font-size:8px; font-weight:900; }
.maintenance-status-card h1 { margin:0 0 2px; font:900 30px/1 Arial,sans-serif; }
.maintenance-status-card h2 { margin:0; font-size:11px; letter-spacing:1px; }
.maintenance-message-zh { clear:both; margin:17px 0 0; font:700 13px/1.45 Arial,sans-serif; }
.maintenance-message-en { margin:4px 0 0; font-size:9px; line-height:1.45; opacity:.55; }
.maintenance-progress { display:grid; grid-template-columns:repeat(10,1fr); gap:3px; margin-top:13px; padding:4px; border:2px solid #111; background:#eee; }
.maintenance-progress span { height:11px; background:#aaa; animation:maintenance-load 1.6s steps(1,end) infinite; }
.maintenance-progress span:nth-child(2){animation-delay:.12s}.maintenance-progress span:nth-child(3){animation-delay:.24s}.maintenance-progress span:nth-child(4){animation-delay:.36s}.maintenance-progress span:nth-child(5){animation-delay:.48s}.maintenance-progress span:nth-child(6){animation-delay:.6s}.maintenance-progress span:nth-child(7){animation-delay:.72s}.maintenance-progress span:nth-child(8){animation-delay:.84s}.maintenance-progress span:nth-child(9){animation-delay:.96s}.maintenance-progress span:nth-child(10){animation-delay:1.08s}
.maintenance-status { display:flex; justify-content:space-between; gap:10px; margin-top:7px; font-size:7px; font-weight:900; }
.maintenance-status span:first-child { animation:maintenance-blink 1.1s steps(1,end) infinite; }
.maintenance-retry { display:block; margin:28px auto 0; min-height:34px; border:2px solid #111; background:#d1d1d1; box-shadow:inset 1px 1px #fff,inset -2px -2px #888; padding:6px 12px; font:900 8px "Courier New",monospace; cursor:pointer; }
.admin-preview-banner { position:fixed; z-index:1100; top:8px; left:50%; width:min(520px,calc(100vw - 20px)); transform:translateX(-50%); border:3px solid #111; background:#fff; box-shadow:5px 5px 0 #111; padding:8px 12px; text-align:center; font:900 10px/1.25 "Courier New",monospace; }
.admin-preview-banner strong { display:block; margin-bottom:3px; padding:4px; background:#111; color:#fff; letter-spacing:1px; }
.admin-preview-banner span { display:block; font-size:9px; }
.admin-preview-banner small { display:block; margin-top:4px; font-size:8px; opacity:.58; }
@keyframes maintenance-fade-in { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
@keyframes maintenance-window-in { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} }
@keyframes maintenance-pet-bounce { 0%,72%,100%{transform:translateY(0) scaleY(1)} 78%{transform:translateY(5px) scaleY(.97)} 84%{transform:translateY(-18px) scaleY(1.025)} 90%{transform:translateY(0) scaleY(.985)} 94%{transform:translateY(-5px) scaleY(1.01)} }
@keyframes maintenance-jitter { 0%,96%,100%{transform:none} 97%{transform:translateX(1px)} 98%{transform:translate(-1px,1px)} }
@keyframes maintenance-load { 0%,34%{background:#111} 35%,100%{background:#aaa} }
@keyframes maintenance-blink { 50%{opacity:.28} }
@media (max-width:600px) {
  .site-maintenance { place-items:center; padding:24px 14px; }
  .maintenance-simple { width:min(354px,100%); transform:translateY(-14px); }
  .maintenance-pet-wrap { width:min(320px,84vw); }
  .maintenance-workspace { width:min(310px,90vw); margin-top:12px; }
  .maintenance-pane { border-width:1.5px; box-shadow:2px 2px 0 #aaa; }
  .maintenance-pane-bar { min-height:25px; padding:4px 7px; border-bottom-width:1.5px; font-size:7px; }
  .maintenance-status-card { margin:6px; padding:11px 11px 9px; border-width:1.5px; }
  .maintenance-kicker { padding:5px 7px; font-size:6px; }
  .maintenance-status-card h1 { font-size:23px; }
  .maintenance-status-card h2 { font-size:9px; }
  .maintenance-message-zh { margin-top:11px; font-size:11px; }
  .maintenance-message-en { font-size:7px; }
  .maintenance-progress { margin-top:8px; gap:2px; padding:3px; border-width:1.5px; }
  .maintenance-progress span { height:8px; }
  .maintenance-status { margin-top:5px; font-size:6px; }
  .maintenance-retry { margin-top:14px; min-height:29px; border-width:1.5px; padding:4px 9px; font-size:7px; }
  .admin-preview-banner { top:max(5px,env(safe-area-inset-top)); font-size:9px; }
}
@media (max-width:600px) and (max-height:650px) { .site-maintenance{place-items:center}.maintenance-pet-wrap{width:240px}.maintenance-workspace{margin-top:9px} }
@media (prefers-reduced-motion:reduce) { .maintenance-pet-wrap,.maintenance-pet,.maintenance-status-window,.maintenance-progress span,.maintenance-status span:first-child{animation:none;opacity:1} }
