@font-face{font-family:Puppet;src:url('SmileySans-Oblique.ttf') format('truetype');font-display:swap}
:root{--blue:#2157eb;--orange:#ff8c14;--gold:#ffc731;--ink:#0a0e1f;--paper:#fffdf5}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;background:var(--blue);color:var(--paper);font-family:Puppet,'Microsoft YaHei',sans-serif}body{overflow:hidden}button{font:inherit}button:focus-visible,summary:focus-visible,canvas:focus-visible{outline:4px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}
#unity-canvas{display:block;width:100%;height:100%;height:100dvh;background:var(--blue);touch-action:none}
#loading{position:fixed;inset:0;display:grid;place-items:center;isolation:isolate;overflow:auto;padding:max(32px,env(safe-area-inset-top)) max(32px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(32px,env(safe-area-inset-left));transition:opacity .25s ease}
#loading::before,#loading::after{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none}
#loading::before{background:var(--orange);clip-path:polygon(0 0,15% 0,0 62%)}
#loading::after{background:var(--gold);clip-path:polygon(100% 48%,100% 100%,87% 100%)}
.loaded{opacity:0;pointer-events:none}.loading-copy{display:flex;flex-direction:column;align-items:center;width:min(100%,620px);min-width:0;padding:16px 0;text-align:center}
h1{font-size:clamp(60px,7.6vw,112px);font-weight:400;line-height:1.04;letter-spacing:-.03em;margin:0 0 clamp(36px,7vh,76px);text-align:center;text-shadow:5px 5px 0 var(--ink)}
.progress-heading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;margin-bottom:16px;text-align:center}#phase{font-size:clamp(18px,2vw,23px)}#percent{font-size:48px;font-weight:400;line-height:1}#percent span{font-size:22px;margin-left:4px}
.progress-track{width:100%;height:30px;background:var(--paper);border:4px solid var(--ink);box-shadow:5px 5px 0 var(--ink);overflow:hidden}#fill{width:100%;height:100%;background:var(--gold);transform-origin:left;transform:scaleX(0);transition:transform .15s linear}
.tip{font-family:'Microsoft YaHei',sans-serif;font-size:14px;line-height:1.8;margin:26px 0 0;text-align:center}
#error,#diagnostics{font-family:'Microsoft YaHei',sans-serif;font-size:14px;line-height:1.7}#error{background:var(--paper);color:var(--ink);padding:12px 16px;border-radius:8px;margin:24px 0 16px}
#retry{background:var(--gold);color:var(--ink);border:3px solid var(--ink);padding:10px 24px;border-radius:10px;min-height:48px;cursor:pointer;font-size:22px;box-shadow:4px 4px 0 var(--ink)}#retry:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
#diagnostics{width:100%;min-width:0;margin-top:20px}#diagnostics summary{cursor:pointer;min-height:44px;padding:10px 0}#error-detail{font:12px/1.6 'Microsoft YaHei',sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;max-height:170px;overflow:auto;background:var(--ink);color:var(--paper);padding:12px;border-radius:8px;margin:0;text-align:left}
@media(max-width:600px){#loading{padding:28px max(28px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left))}h1{font-size:clamp(52px,14.6vw,82px);margin-bottom:52px;text-shadow:4px 4px 0 var(--ink)}#percent{font-size:40px}.tip{font-size:12px;margin-top:24px}.progress-track{height:26px}#loading::before{clip-path:polygon(0 0,34% 0,0 22%)}#loading::after{clip-path:polygon(100% 80%,100% 100%,65% 100%)}}
@media(max-height:500px) and (orientation:landscape){#loading{padding:20px 44px}.loading-copy{width:min(100%,570px);padding:0}h1{font-size:52px;margin-bottom:24px}h1 br{display:none}#percent{font-size:34px}.tip{font-size:12px;margin-top:18px}.progress-track{height:25px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
