:root{--play-aspect: .5625 ;--bg: #0d0d12;--panel-bg: #16161f;--panel-border: #2a2a3a;--text: #e8e8f0}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:system-ui,Segoe UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}#app-shell{display:flex;align-items:stretch;justify-content:center;gap:0;width:100vw;height:100vh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#stage-frame{position:relative;height:100%;aspect-ratio:9 / 16;max-width:100%;max-height:100%;background:#000;flex:0 0 auto}#game-root{position:absolute;inset:0}#game-root canvas{display:block;width:100%!important;height:100%!important;image-rendering:auto}#dom-overlay{position:absolute;inset:0;pointer-events:none;z-index:10}.side-panel{flex:1 1 0;min-width:0;max-width:420px;height:100%;background:var(--panel-bg);border-left:1px solid var(--panel-border);border-right:1px solid var(--panel-border);overflow:hidden}@media(max-width:719px),(orientation:portrait){.side-panel{display:none}#stage-frame{height:100%;max-width:100vw}}.is-hidden{display:none!important}.portrait{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 8px}.portrait-fig{position:relative;width:96px;height:160px}.pf-hair{position:absolute;top:8px;left:50%;transform:translate(-50%);width:56px;height:40px;border-radius:28px 28px 8px 8px}.pf-head{position:absolute;top:18px;left:50%;transform:translate(-50%);width:44px;height:44px;border-radius:50%}.pf-body{position:absolute;top:56px;left:50%;transform:translate(-50%);width:72px;height:100px;border-radius:16px 16px 10px 10px}.pf-img{position:absolute;top:0;left:50%;transform:translate(-50%);height:100%;width:auto;image-rendering:auto}.portrait-name{font:600 14px/1 sans-serif;color:var(--text)}.status-box{padding:16px 12px}.status-title{font:700 11px/1 monospace;color:#9a9ab0;letter-spacing:.1em;margin-bottom:8px}.status-text{font:500 13px/1.6 monospace;color:var(--text);white-space:pre-line;margin-bottom:10px}.reward-box{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#000a;pointer-events:auto;z-index:20}.reward-title{font:700 16px/1 sans-serif;color:#ffe066}.reward-cards{display:flex;flex-direction:column;gap:10px;width:min(86%,300px)}.reward-card{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:10px;background:#1c1c28;border:2px solid #3a3a52;color:var(--text);cursor:pointer;font-family:sans-serif}.reward-card:hover,.reward-card:active{border-color:#ffd966;background:#24243a}.reward-skip{display:block;width:100%;text-align:center;padding:8px 12px;border-radius:10px;background:transparent;border:2px solid #3a3a52;color:#9a9ab0;cursor:pointer;font:600 12px/1.3 sans-serif}.reward-skip:hover,.reward-skip:active{border-color:#9a9ab0;color:var(--text)}.reward-name{font:700 14px/1.3 sans-serif}.reward-rarity{font:600 10px/1.4 monospace;text-transform:uppercase;letter-spacing:.08em;color:#9a9ab0}.rarity-rare{color:#6fb7ff}.rarity-epic{color:#c78bff}.rarity-legendary{color:#ffb454}.reward-desc{margin-top:4px;font:500 11px/1.4 monospace;color:#c8c8d8}.dialog-box{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;background:#000c;pointer-events:auto;z-index:20}.dialog-title{font:700 16px/1.3 sans-serif;color:#ffe066;text-align:center;width:min(88%,320px)}.dialog-body{font:500 12px/1.5 sans-serif;color:#c8c8d8;text-align:center;width:min(88%,320px);margin-bottom:6px}.dialog-options{display:flex;flex-direction:column;gap:8px;width:min(88%,320px)}.dialog-option{display:block;width:100%;text-align:left;padding:9px 12px;border-radius:10px;background:#1c1c28;border:2px solid #3a3a52;color:var(--text);cursor:pointer;font-family:sans-serif}.dialog-option:hover,.dialog-option:active{border-color:#ffd966;background:#24243a}.dialog-option.is-disabled{opacity:.4;cursor:not-allowed}.dialog-option-label{font:700 13px/1.3 sans-serif}.dialog-option-detail{margin-top:3px;font:500 10px/1.4 monospace;color:#9a9ab0}.dialog-speaker{display:flex;align-items:flex-end;gap:12px;width:min(88%,320px);margin-bottom:4px}.dialog-speaker.is-hidden{display:none}.dialog-speaker-fig{position:relative;width:54px;height:88px;flex:0 0 auto}.dialog-speaker-fig .pf-hair{top:4px;width:32px;height:22px;border-radius:16px 16px 5px 5px}.dialog-speaker-fig .pf-head{top:10px;width:26px;height:26px}.dialog-speaker-fig .pf-body{top:32px;width:42px;height:58px;border-radius:10px 10px 6px 6px}.dialog-speaker-name{font:700 13px/1.3 sans-serif;color:#ffe066;padding-bottom:6px}.status-view{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000c;pointer-events:auto;z-index:21}.status-view-panel{width:min(90%,320px);background:#1c1c28;border:2px solid #3a3a52;border-radius:12px;padding:16px}.status-view-title{font:700 16px/1.3 sans-serif;color:#ffd966;text-align:center;margin-bottom:10px}.status-view-portrait{position:relative;width:72px;height:116px;margin:0 auto 10px}.status-view-portrait.is-hidden{display:none}.status-view-portrait .pf-hair{top:6px;width:42px;height:30px;border-radius:21px 21px 6px 6px}.status-view-portrait .pf-head{top:16px;width:34px;height:34px}.status-view-portrait .pf-body{top:46px;width:56px;height:68px;border-radius:13px 13px 8px 8px}.status-view-body{font:500 12px/1.7 monospace;color:#e8e8f0;white-space:pre-wrap}.status-view-hint{margin-top:12px;font:500 10px/1.4 sans-serif;color:#9a9ab0;text-align:center}
