@font-face{font-family:WesternTitle;src:url('loading-title.woff2') format('woff2');font-weight:900;font-display:swap}
@font-face{font-family:WesternBody;src:url('loading-body.woff2') format('woff2');font-weight:650;font-display:swap}
*{box-sizing:border-box}body{touch-action:none;color:#f5e5bd;font-family:WesternBody,"Microsoft YaHei",sans-serif}button{font:inherit}[hidden]{display:none!important}
#loader{--poster-scale:1;--progress:0;overflow:hidden;isolation:isolate;opacity:1;transition:opacity .2s ease;background:#0b141f}
#loader:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,#28405999,transparent 75%),repeating-linear-gradient(105deg,transparent 0 15px,#a3814b08 16px 17px)}
.stage-zone{position:absolute;inset:0}
.poster{position:absolute;left:50%;top:50%;width:450px;height:800px;transform:translate(-50%,-50%) scale(var(--poster-scale));transform-origin:center;background:#eee0ba url('loading-western-v1.webp') center/cover no-repeat;box-shadow:0 0 0 2px #9a773c,0 0 90px #000d;overflow:hidden}
.poster:after{content:"";position:absolute;inset:49% 0 0;background:linear-gradient(transparent,#07111b77 22%,#07111be8 62%,#07111b 100%);z-index:0;pointer-events:none}
.print-border{position:absolute;inset:11px;border:1px solid #bc98598c;box-shadow:0 0 0 3px #16263c55,inset 0 0 0 3px #b3924640;pointer-events:none;z-index:3}
.paper-header{position:absolute;inset:0 0 auto;height:211px;background:#f3e4c0 url('loading-paper.webp') center top/450px auto;mask-image:linear-gradient(#000 0 86%,transparent 100%)}
.masthead{position:absolute;left:25px;right:25px;top:26px;color:#122b47;text-align:center;z-index:1}
.issue-line{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:2px;margin:0 0 4px;border-top:2px solid #20354d;border-bottom:1px solid #20354d;padding:6px 0}.issue-line span{color:#a23224;font-size:12px}
h1{display:flex;justify-content:center;white-space:nowrap;font-family:WesternTitle,serif;font-size:83px;font-weight:900;letter-spacing:1px;line-height:1.1;margin:2px -10px 0;transform:skew(-4deg);text-shadow:1px 2px #fff1c9,3px 4px #15294040}h1 span:first-child{color:#173f6c}h1 span:last-child{color:#ae3224}
.subtitle{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:3px}.subtitle span{height:2px;width:57px;background:#22384c}.subtitle b{font-family:WesternTitle,serif;font-size:21px;font-weight:900;letter-spacing:5px}.tagline{font-size:11px;letter-spacing:6px;margin:7px 0 0;color:#69422e}
.departure{position:absolute;left:14px;right:14px;bottom:12px;height:253px;z-index:2;text-align:center;color:#f8e6b8}
.load-heading{position:absolute;left:27px;right:27px;top:0;height:42px;display:flex;align-items:center;justify-content:center;background:url('loading-plaque-v2.png') center/100% 100% no-repeat;filter:drop-shadow(0 3px 2px #0008)}
h2{font-family:WesternTitle,serif;font-size:21px;letter-spacing:2px;font-weight:900;line-height:1.3;margin:0;padding:0 12px;text-shadow:1px 2px #090f17}
.mechanism{position:absolute;left:0;top:35px;width:100%;aspect-ratio:2/1}
.mechanism-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 5px #000b);pointer-events:none}
.trough{position:absolute;left:29.1%;top:43.5%;width:55.4%;height:11.4%;overflow:hidden;border-radius:1px;background:#08142088;box-shadow:inset 0 2px 4px #000c;display:grid;place-items:center}
.powder-fill{position:absolute;inset:2px auto 2px 0;width:calc(var(--progress)*100%);background:repeating-linear-gradient(90deg,transparent 0 20px,#280a0b77 21px 23px),linear-gradient(#edbd62 0,#b34c2e 16%,#92271c 60%,#5a1c16 100%);box-shadow:inset 0 1px #ffda88,inset 0 -1px #1b100e,2px 0 5px #ffd78c80;transition:width .16s linear}
#progress-label{position:relative;z-index:1;font-family:WesternTitle,serif;font-size:17px;line-height:1;letter-spacing:1px;text-shadow:1px 1px 2px #000,-1px -1px #000;font-weight:900;font-variant-numeric:tabular-nums;color:#fff0c8}
.chambers i{position:absolute;left:var(--x);top:var(--y);width:5%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);opacity:0;background:radial-gradient(circle,#fff7cf88,#ffbb3e22 45%,transparent 70%);box-shadow:0 0 8px #f4b84c44;transition:opacity .18s}.chambers i.loaded{opacity:1}
#status-text{position:absolute;left:15px;right:15px;bottom:30px;font-size:13px;line-height:1.5;letter-spacing:1px;margin:0;color:#e5c68e;text-shadow:0 2px 2px #000}
.tip{position:absolute;left:16px;right:16px;bottom:0;font-size:12px;line-height:1.5;letter-spacing:.5px;margin:0;color:#d6c5a5;padding-top:7px;border-top:1px solid #ac854c55}
button#retry{position:absolute;left:50%;top:69px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;min-width:250px;min-height:max(55px,calc(44px / var(--poster-scale)));padding:12px 22px;background:#a42b1d url('loading-retry-v2.png') center/100% 100% no-repeat;border:0;color:#fff1c9;font-family:WesternTitle,serif;font-size:22px;font-weight:900;letter-spacing:4px;text-shadow:1px 2px #3e110c;cursor:pointer;filter:drop-shadow(0 4px 3px #0009)}button#retry:hover{filter:brightness(1.15) drop-shadow(0 4px 3px #0009)}button#retry:active{margin-top:2px}button#retry:focus-visible{outline:3px solid #ffe2a5;outline-offset:4px}
[data-phase=error] .load-heading{left:10px;right:10px}[data-phase=error] h2{font-size:20px}[data-phase=error] #status-text{bottom:70px}[data-phase=error] .tip{bottom:26px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.no-script{position:fixed;z-index:5;inset:70% 5% auto;background:#122235;padding:24px;color:#f5dfae;text-align:center}
#loader.leaving{opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-aspect-ratio:6/5){#status-text{font-size:max(13px,calc(12px / var(--poster-scale)))}.tip{font-size:max(12px,calc(11px / var(--poster-scale)))}}
