:root{color-scheme:dark;--game-scale:1;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden;background:#0a0619;font-family:Arial,"Noto Sans TC",sans-serif;overscroll-behavior:none}
body{height:100dvh;touch-action:none;-webkit-user-select:none;user-select:none}
#viewport{position:fixed;inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);overflow:hidden;background:radial-gradient(ellipse at center,#1d0d30,#0a0619 75%)}
#iframeWrapper{position:absolute;left:50%;top:50%;width:1280px;height:720px;aspect-ratio:16/9;transform:translate(-50%,-50%);transform-origin:center;overflow:hidden;background:#0a0619;opacity:1;transition:opacity .15s ease}
body.portrait #iframeWrapper{width:720px;height:1280px;aspect-ratio:9/16}
#GameDiv,#Cocos3dGameContainer{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;overflow:hidden;transform:none!important}
#GameCanvas{display:block;width:100%!important;height:100%!important;margin:0!important;outline:none;touch-action:none}
body.booting #iframeWrapper,body.scene-switching #iframeWrapper{opacity:0}
#loading,#orientationHint,#loadError{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:radial-gradient(ellipse at center,#251039,#0a0619 80%);color:#f6e5ff}
#loading strong{font-size:clamp(25px,6vw,42px);letter-spacing:3px;color:#ffe2a1}
#loading p{font-size:13px;color:#bba0d4;letter-spacing:2px}
.loading-ring{display:block;width:45px;height:45px;margin-top:28px;border:2px solid #614178;border-top-color:#ffd984;border-radius:50%;animation:loading-spin 1s linear infinite}
body:not(.booting) #loading{display:none}
#orientationHint{z-index:30;background:rgba(10,6,25,.98)}
#orientationHint img{width:144px;height:144px;object-fit:contain}
#orientationHint h1{margin:18px 0 8px;font-size:24px;color:#ffe0a0;letter-spacing:2px}
#orientationHint p{margin:0;font-size:14px;color:#bfa5d8}
#loadError{z-index:40}
#loadError h1{font-size:22px}#loadError button{min-height:48px;min-width:150px;background:#503265;border:1px solid #bc91e0;color:#fff0ce;border-radius:10px;font:inherit;padding:10px 24px}
[hidden]{display:none!important}
@keyframes loading-spin{to{transform:rotate(360deg)}}
@media(orientation:landscape){#iframeWrapper{aspect-ratio:16/9}}
@media(orientation:portrait){body.portrait #iframeWrapper{aspect-ratio:9/16}}
@media(prefers-reduced-motion:reduce){.loading-ring{animation:none}#iframeWrapper{transition:none}}
