@font-face{font-family:CPLoadingTitle;src:url('/assets/bungee-regular-v1.woff2') format('woff2'),url('/assets/bungee-regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:CPText;src:url('/assets/nunito-v1.woff2') format('woff2'),url('/assets/nunito.ttf') format('truetype');font-display:swap}
/* Design coordinates match splash_screen.gd. Artwork and live UI stay separate. */
.cp-loading{--u:min(.08802817vw,.15625dvh);--gold:#ffd166;--cream:#fff3d6;--ink:#570d09;position:fixed;inset:0;z-index:50;overflow:auto;isolation:isolate;background:#261719;color:var(--cream);font-family:CPText,system-ui,sans-serif;opacity:1;transition:opacity .38s ease,visibility .38s;box-sizing:border-box}
.cp-loading *{box-sizing:border-box}.cp-loading[hidden]{display:none}.cp-loading.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.cp-loader-backdrop{position:fixed;inset:0;z-index:-3;background:url('/assets/red-cream-arena.webp') center/cover}
.cp-loader-shade{position:fixed;inset:0;z-index:-2;background:radial-gradient(ellipse at 50% 46%,#38200800 20%,#090d1c40 70%,#080a19a6),linear-gradient(#140c1d26,#150a1300 65%,#110a1680)}
.cp-loader-body{position:absolute;width:calc(1136 * var(--u));height:calc(640 * var(--u));left:50%;top:50%;transform:translate(-50%,-50%)}
.cp-loader-aura{position:absolute;inset:18% 14% 15%;background:radial-gradient(ellipse,#ffcf6b66,transparent 67%);pointer-events:none;animation:cp-glow 4s ease-in-out infinite alternate}
.cp-loader-logo{position:absolute;left:calc(388 * var(--u));top:0;width:calc(360 * var(--u));height:calc(160 * var(--u));object-fit:contain;filter:drop-shadow(0 calc(7 * var(--u)) calc(5 * var(--u)) #23080580);animation:cp-arrive .65s cubic-bezier(.2,.7,.3,1) both}
.cp-loader-copy{position:absolute;left:15%;width:70%;top:calc(154 * var(--u));text-align:center;z-index:2}
.cp-loader-title{font:400 calc(26 * var(--u))/1.2 CPLoadingTitle,system-ui,sans-serif;margin:0;color:#fff5da;-webkit-text-stroke:calc(3 * var(--u)) #461007;paint-order:stroke fill;text-shadow:0 calc(3 * var(--u)) #461007,0 calc(5 * var(--u)) calc(4 * var(--u)) #21070a88}
.cp-loader-subtitle{font-size:max(12px,calc(19 * var(--u)));font-weight:900;line-height:1.5;color:#fff3d6;max-width:540px;margin:20px auto 0;text-shadow:0 2px 3px #310707}.cp-loader-subtitle[hidden]{display:none}
.cp-loader-hero{position:absolute;left:calc(301 * var(--u));top:calc(160 * var(--u));width:calc(534 * var(--u));height:calc(356 * var(--u));object-fit:contain;filter:drop-shadow(0 calc(12 * var(--u)) calc(12 * var(--u)) #19061166);animation:cp-breathe 4s ease-in-out infinite;transform-origin:50% 95%}
.cp-loader-card{position:absolute;left:calc(228 * var(--u));top:calc(494 * var(--u));width:calc(680 * var(--u));height:calc(116 * var(--u));filter:drop-shadow(0 calc(5 * var(--u)) calc(5 * var(--u)) #2c090966);z-index:3}
.cp-loader-skin{position:absolute;inset:0;display:flex;pointer-events:none}.cp-loader-skin svg{display:block;height:100%;width:calc(100% * 160 / 680);flex:none}.cp-loader-skin svg:first-child,.cp-loader-skin svg:last-child{width:calc(116 * var(--u) * 160 / 254)}.cp-loader-skin svg:nth-child(2){flex:1;min-width:0}
.cp-loader-progress{position:absolute;inset:calc(20 * var(--u)) calc(45 * var(--u)) calc(14 * var(--u))}
.cp-loader-progress-label{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-inline:calc(22 * var(--u));margin-bottom:calc(7 * var(--u));font:400 calc(18 * var(--u))/1 CPLoadingTitle,system-ui,sans-serif;color:#64120a}
.cp-loader-percent{font-size:calc(23 * var(--u));font-variant-numeric:tabular-nums;color:#64120a}.cp-loader-percent:empty{display:none}
.cp-loader-track{height:calc(22 * var(--u));padding:calc(3 * var(--u));border:calc(2 * var(--u)) solid #a75c13;border-radius:100px;background:linear-gradient(#141b29,#344151 55%,#101a28);box-shadow:0 calc(2 * var(--u)) #fffae4,inset 0 calc(2 * var(--u)) calc(3 * var(--u)) #040816;overflow:hidden}
.cp-loader-fill{height:100%;width:var(--progress,0%);border-radius:inherit;background:linear-gradient(#e4ff9b,#8aef00 28%,#5cd000 60%,#249000);box-shadow:inset 0 calc(2 * var(--u)) #d8ff79,0 0 calc(6 * var(--u)) #a8ff3580;transition:width .28s linear}
.cp-loading.is-indeterminate .cp-loader-fill{width:30%;animation:cp-progress 1.8s ease-in-out infinite}
.cp-loader-detail{display:flex;justify-content:space-between;gap:12px;font-size:calc(11 * var(--u));line-height:1.4;font-weight:900;color:#805029;margin-top:calc(5 * var(--u))}.cp-loader-round{letter-spacing:calc(1.4 * var(--u));white-space:nowrap;font-size:calc(9 * var(--u));padding-top:calc(2 * var(--u))}
.cp-loader-footer{position:absolute;left:10%;right:10%;top:calc(618 * var(--u));text-align:center;font-size:calc(12 * var(--u));font-weight:900;line-height:1.5;color:#fff2d6;text-shadow:0 2px 4px #160a08}
.cp-loader-motion{position:absolute;right:max(18px,env(safe-area-inset-right));top:max(18px,env(safe-area-inset-top));display:flex;align-items:center;justify-content:center;gap:9px;min-width:44px;min-height:44px;padding:10px 14px;border:2px solid #ffe28c;border-radius:16px;background:linear-gradient(135deg,#ff4c3a,#e70008 40%,#990004 80%);color:#fff3d6;box-shadow:0 0 0 2px #8f3e0c,0 4px 0 2px #561d09,inset 0 2px #ff9c76,inset 0 -3px #790007;font:900 9px CPText,system-ui,sans-serif;letter-spacing:1px;cursor:pointer;z-index:4}.cp-loader-motion>span:first-child{font-size:18px;line-height:1}.cp-loader-motion:hover{filter:brightness(1.12)}
.cp-loader-error-actions{display:flex;justify-content:center;align-items:center;gap:14px;position:absolute;inset:0;padding:14px}.cp-loader-error-actions[hidden]{display:none}
.cp-loader-retry,.cp-loader-home{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:2px solid #ffd166;border-radius:14px;padding:10px 18px;font:900 12px CPText,system-ui,sans-serif;text-decoration:none;cursor:pointer;background:linear-gradient(#efffba,#85ea00 35%,#34a500);color:#212b0d;box-shadow:0 3px #684008,inset 0 2px #fffddc}.cp-loader-home{background:linear-gradient(#ff4934,#d2070a 40%,#880005);color:#fff3d6;box-shadow:0 3px #684008,inset 0 1px #ff9b6e}
.cp-loading button:focus-visible,.cp-loading a:focus-visible{outline:3px solid #fff7d2;outline-offset:5px}
.cp-loading.is-error .cp-loader-progress,.cp-loading.is-error .cp-loader-motion{display:none}.cp-loading.is-error .cp-loader-hero{opacity:.18}.cp-loading.is-error .cp-loader-copy{top:35%}.cp-loading.is-error .cp-loader-title{font-size:calc(40 * var(--u))}.cp-loading.is-error *,.cp-loading.is-still *{animation-play-state:paused!important}
.cp-loading.is-still.is-indeterminate .cp-loader-fill{animation:none;width:100%;opacity:.5}
.cp-loading.is-slow:not(.is-error) .cp-loader-card{height:calc(145 * var(--u));top:calc(465 * var(--u))}.cp-loading.is-slow:not(.is-error) .cp-loader-error-actions{inset:auto 0 14px;padding:0}.cp-loading.is-slow:not(.is-error) .cp-loader-progress{bottom:auto}
@keyframes cp-arrive{0%{transform:scale(.94)}60%{transform:scale(1.025)}100%{transform:scale(1)}}
@keyframes cp-glow{from{opacity:.65}to{opacity:1}}@keyframes cp-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(calc(-3 * var(--u)))}}
@keyframes cp-progress{from{transform:translateX(-110%)}to{transform:translateX(440%)}}
@media(max-aspect-ratio:1/1){
 .cp-loading{--u:min(.14285714vw,.08928571dvh)}.cp-loader-body{width:calc(700 * var(--u));height:calc(1120 * var(--u))}
 .cp-loader-logo{left:calc(110 * var(--u));top:calc(40 * var(--u));width:calc(480 * var(--u));height:calc(213 * var(--u))}
 .cp-loader-copy{left:3%;width:94%;top:calc(266 * var(--u))}.cp-loader-title{font-size:calc(28 * var(--u));-webkit-text-stroke:calc(4 * var(--u)) #461007}
 .cp-loader-hero{left:calc(25 * var(--u));top:calc(315 * var(--u));width:calc(650 * var(--u));height:calc(433 * var(--u))}
 .cp-loader-card{left:calc(20 * var(--u));top:calc(742 * var(--u));width:calc(660 * var(--u));height:calc(160 * var(--u))}
 .cp-loader-skin svg:first-child,.cp-loader-skin svg:last-child{width:calc(160 * var(--u) * 160 / 254)}
 .cp-loader-progress{inset:calc(30 * var(--u)) calc(65 * var(--u))}.cp-loader-progress-label{font-size:calc(24 * var(--u));margin-bottom:calc(12 * var(--u))}.cp-loader-percent{font-size:calc(30 * var(--u))}
 .cp-loader-track{height:calc(29 * var(--u));padding:calc(4 * var(--u))}.cp-loader-detail{font-size:calc(16 * var(--u));line-height:1.2;margin-top:calc(6 * var(--u))}.cp-loader-round{display:none}
 .cp-loader-footer{top:calc(942 * var(--u));font-size:calc(19 * var(--u));left:8%;right:8%;text-wrap:balance}.cp-loader-motion-text{display:none}
 .cp-loading.is-error .cp-loader-copy{top:calc(300 * var(--u));left:8%;width:84%}.cp-loading.is-error .cp-loader-title{font-size:calc(42 * var(--u))}
 .cp-loading.is-slow:not(.is-error) .cp-loader-card{height:calc(265 * var(--u));top:calc(637 * var(--u))}.cp-loading.is-slow:not(.is-error) .cp-loader-error-actions{bottom:calc(18 * var(--u))}
}
@media(max-height:500px){.cp-loader-motion-text{display:none}.cp-loader-motion{top:12px;right:max(12px,env(safe-area-inset-right))}.cp-loading.is-error .cp-loader-card{height:70px;top:auto;bottom:20px}.cp-loading.is-error .cp-loader-footer{display:none}.cp-loading.is-slow:not(.is-error) .cp-loader-card{height:125px;top:auto;bottom:20px}.cp-loading.is-slow:not(.is-error) .cp-loader-footer{display:none}}
@media(prefers-reduced-motion:reduce){.cp-loading,.cp-loading *{animation:none!important;transition:none!important}.cp-loading.is-indeterminate .cp-loader-fill{width:100%;opacity:.5}}
