*,*:before,*:after{box-sizing:border-box;touch-action:manipulation}input,textarea,select,[contenteditable=true]{touch-action:auto}.mobile-ui-guard,.mobile-ui-guard *{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mobile-ui-guard button,.mobile-ui-guard [role=button],.mobile-ui-guard a{touch-action:manipulation}.mobile-ui-guard img,.mobile-ui-guard svg{-webkit-user-drag:none}.mobile-ui-guard input,.mobile-ui-guard textarea,.mobile-ui-guard select,.mobile-ui-guard [contenteditable=true]{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text;touch-action:auto}.layout-background-layer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;overflow:hidden;-webkit-user-select:none;user-select:none;pointer-events:none}.layout1-container,.layout2-container,.layout3-container{position:relative;z-index:1}.layout1-game-area,.layout2-game-area,.layout3-game-area,.layout1-header,.layout2-header,.layout3-header,.layout1-dashboard,.layout2-dashboard,.layout3-dashboard{position:relative;z-index:10}:root{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;font-weight:400;color-scheme:light;color:#ffffffde;background:linear-gradient(135deg,#fff9e6,#ffe4b5);background-color:#fff9e6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;min-width:320px;min-height:100%;overflow:hidden;width:100%;height:100%;touch-action:manipulation;-webkit-text-size-adjust:100%;overscroll-behavior:none;background:linear-gradient(135deg,#fff9e6,#ffe4b5);background-color:#fff9e6}#root{width:100%;height:100%;overflow:hidden;position:relative;background:linear-gradient(135deg,#fff9e6,#ffe4b5);background-color:#fff9e6}html{height:100%;overflow:hidden;background:linear-gradient(135deg,#fff9e6,#ffe4b5);background-color:#fff9e6}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background:linear-gradient(135deg,#fff9e6,#ffe4b5);background-color:#fff9e6}a:hover{color:#747bff}button{background-color:#f9f9f9}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#0003;border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:#0006}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent}.page-nav{position:fixed;top:1rem;right:1rem;z-index:1000;display:flex;gap:.5rem}.page-nav button{background:#fff;color:#667eea;border:2px solid #667eea;padding:.7rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #00000026}.page-nav button:hover{background:#667eea;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.page-nav--floating{flex-direction:column;gap:.75rem}.page-nav--floating button{width:50px;height:50px;padding:0;border-radius:50%;font-size:1.5rem;display:flex;align-items:center;justify-content:center;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.app{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2)}.app-header{text-align:center;color:#fff;margin-bottom:2rem}.app-header h1{font-size:3rem;margin:0;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.app-header p{font-size:1.2rem;opacity:.9;margin:.5rem 0 0}.character-stage{background:linear-gradient(135deg,#ffa07a,coral);border-radius:20px;padding:4rem 6rem;box-shadow:0 20px 40px #0000004d;margin:2rem 0;min-height:300px;display:flex;align-items:center;justify-content:center}.controls{display:flex;gap:2rem;margin:2rem 0;flex-wrap:wrap;justify-content:center}.control-section{background:#fff;padding:1.5rem;border-radius:15px;box-shadow:0 10px 20px #0003;min-width:250px}.control-section h3{margin:0 0 1rem;color:#667eea;font-size:1.2rem}.button-group{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.button-group button{padding:.6rem 1.2rem;border:none;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease;font-size:.9rem}.button-group button:hover{transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.button-group button:active{transform:translateY(0)}.character-info{background:#fff;padding:2rem;border-radius:15px;box-shadow:0 10px 20px #0003;min-width:300px;margin-top:2rem}.character-info h3{margin:0 0 1.5rem;color:#667eea;font-size:1.5rem}.stats{display:flex;flex-direction:column;gap:1rem}.stat{display:flex;justify-content:space-between;align-items:center;padding:.8rem;background:#f5f5f5;border-radius:8px}.stat span{color:#666;font-weight:500}.stat strong{color:#667eea;font-size:1.1rem}.app-loading-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(135deg,#fff9e6,#ffe4b5)}.app-loading-overlay__content{display:flex;flex-direction:column;align-items:center;gap:1rem;width:min(82vw,360px)}.app-loading-overlay__signboard{position:relative;box-sizing:border-box;width:100%;min-height:112px;padding:1.05rem 1.1rem 1.15rem;border:4px solid #8B5A2B;border-radius:8px;background:linear-gradient(180deg,#f6c77c,#d89545);box-shadow:0 8px #6f3f1a,0 16px 24px #6f3f1a33;color:#5b2f12;text-align:center;display:flex;flex-direction:column;justify-content:center}.app-loading-overlay__post{position:absolute;bottom:-18px;width:12px;height:18px;border-radius:0 0 4px 4px;background:#7a461f}.app-loading-overlay__post--left{left:14%}.app-loading-overlay__post--right{right:14%}.app-loading-overlay__symbol-row{display:flex;justify-content:center;margin-bottom:.42rem}.app-loading-overlay__symbol{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:3px solid #6F3F1A;border-radius:8px;background:#fff1b8;box-shadow:0 4px #6f3f1a;font-size:1.65rem;font-weight:900;line-height:1}.app-loading-overlay__tip-text{font-size:1.12rem;font-weight:800;line-height:1.28;overflow-wrap:anywhere}.app-loading-overlay__paw{margin-top:.85rem;font-size:4rem;animation:app-loading-bounce-spin 1.2s infinite ease-in-out}.app-loading-overlay__message{color:#8b4513;font-size:1.2rem;font-weight:800;letter-spacing:2px;text-transform:uppercase;animation:app-loading-pulse 1.5s infinite ease-in-out}@keyframes app-loading-bounce-spin{0%{transform:translateY(0) rotate(0) scale(1)}50%{transform:translateY(-20px) rotate(180deg) scale(1.1)}to{transform:translateY(0) rotate(360deg) scale(1)}}@keyframes app-loading-pulse{0%,to{opacity:1}50%{opacity:.6}}.play-timer-notice{position:fixed;top:calc(20px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);z-index:2147483000;display:flex;align-items:center;justify-content:center;gap:10px;width:min(calc(100vw - 28px),560px);padding:14px 20px;font-size:14px;font-weight:700;text-align:center;border-radius:16px;border:4px solid #fbc02d;background:linear-gradient(180deg,#fff9c4,#fff59d);color:#f57f17;box-shadow:0 4px #0003,0 6px 12px #00000026;animation:play-timer-heartbeat 2s infinite;pointer-events:none}.play-timer-notice__icon{flex:0 0 auto;font-size:20px;line-height:1;filter:drop-shadow(1px 1px 2px rgba(0,0,0,.2))}.play-timer-notice__text{line-height:1.3;text-shadow:1px 1px 2px rgba(0,0,0,.1)}.play-timer-notice--expired{border-color:#fb8c00;background:linear-gradient(180deg,#ffe0b2,#ffcc80);color:#e65100;animation-duration:1.5s}@keyframes play-timer-heartbeat{0%,to{transform:translate(-50%) scale(1)}30%{transform:translate(-50%) scale(1.05)}20%,40%{transform:translate(-50%) scale(.98)}}@media(max-width:560px){.play-timer-notice{top:calc(12px + env(safe-area-inset-top,0px));padding:12px 14px;font-size:13px;border-width:3px;border-radius:14px}}
