.course-opening{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;overflow:auto;color:#332f28;background:#faf9f6;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;isolation:isolate}
.course-opening[hidden]{display:none!important}.course-opening *{box-sizing:border-box}
.course-opening:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#faf9f640,#faf9f67a 38%,#faf9f6ed 88%);pointer-events:none}
.course-opening__scene{position:absolute;inset:-3%;z-index:-2;background:url('/static/assets/course-opening/scene.webp') center/cover;opacity:.78;animation:course-opening-orbit 36s ease-in-out infinite;pointer-events:none}
.course-opening__close{position:absolute;right:28px;top:22px;width:44px;height:44px;padding:0;border:1px solid #d5c7ac;background:#fffdf7c9;border-radius:50%;color:#554c3d;font-size:28px;line-height:1;cursor:pointer}
.course-opening__stage{width:min(600px,calc(100% - 40px));padding:36px 0;text-align:center;animation:course-opening-arrive .45s ease-out both}
.course-opening__portrait{position:relative;width:clamp(200px,34vh,300px);aspect-ratio:1;margin:0 auto 14px}.course-opening__portrait img{position:relative;width:100%;height:100%;object-fit:contain;animation:course-opening-float 9s ease-in-out infinite}.course-opening__halo{position:absolute;inset:17%;border:1px solid #c1a7754d;border-radius:50%;background:radial-gradient(circle,#fffefb9c,transparent 68%);transform:scale(1.34)}
.course-opening__status{margin:10px 0 16px;font-size:clamp(25px,3.3vw,38px);font-weight:620;letter-spacing:-.025em;line-height:1.4;min-height:1.4em}
.course-opening__progress{max-width:430px;height:4px;margin:0 auto;border-radius:8px;background:#dfd8cb;overflow:hidden}.course-opening__bar{width:100%;height:100%;transform:scaleX(.75);transform-origin:left;background:linear-gradient(90deg,#bba47a,#92733f);transition:transform .3s ease}
.course-opening__count{max-width:430px;margin:12px auto 0;text-align:right;color:#78674b;font-size:12px;font-variant-numeric:tabular-nums}
.course-opening__actions{min-height:20px;margin:22px auto 0;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px}.course-opening__actions button{min-height:42px;padding:10px 16px;border:1px solid #d8ccb7;border-radius:9px;background:#fffdf8;color:#62533d;font:inherit;font-size:13px;cursor:pointer}.course-opening__actions button.primary{border-color:#98783f;background:#98783f;color:#fffdf9}.course-opening__actions button:disabled{opacity:.55;cursor:default}.course-opening__retained,.course-opening__error{width:100%;margin:0;color:#6e675b;font-size:14px;line-height:1.65}.course-opening__error{color:#8b493d}
.course-opening button:focus-visible{outline:3px solid #98753c;outline-offset:4px}
@keyframes course-opening-orbit{0%,100%{transform:translate3d(0,0,0) scale(1.01)}50%{transform:translate3d(-8px,4px,0) scale(1.025)}}@keyframes course-opening-float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-8px,0)}}@keyframes course-opening-arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.course-opening__scene,.course-opening__portrait img,.course-opening__stage{animation:none!important}.course-opening__bar{transition:none!important}}
@media(max-width:650px){.course-opening__close{right:16px;top:14px}.course-opening__portrait{width:210px}.course-opening__status{font-size:27px}}
@media(max-height:650px){.course-opening__stage{padding:20px 0}.course-opening__portrait{width:min(190px,28vh);margin-bottom:4px}.course-opening__status{margin:5px 0 11px;font-size:28px}.course-opening__actions{margin-top:15px}}
