#app .op-guide{gap:18px;align-items:center;margin-bottom:8px;min-height:158px}
#app .oc-stage{width:104px;height:144px;flex:0 0 104px;position:relative;display:grid;place-items:center}
#app .oc-actor{position:relative;z-index:1;transform-origin:50% 85%;width:96px;height:132px}
#app .op-guide .op-ami{width:96px;height:132px;object-fit:contain;display:block;transform-origin:50% 85%}
#app[data-motion=on] .oc-stage:not(.oc-paused):not(.oc-reacting) .op-ami{animation:oc-idle 3.3s ease-in-out infinite}
#app .oc-shadow{position:absolute;width:42px;height:7px;bottom:0;left:31px;border-radius:50%;background:var(--op-blue);opacity:.12}
#app .oc-flourish{position:absolute;right:-4px;top:10px;color:var(--op-blue);font:22px Georgia,serif;pointer-events:none;white-space:nowrap;z-index:2}
#app .op-dialogue{position:relative;flex:1;padding-bottom:28px;min-height:126px;max-width:435px}
#app .oc-speech{position:relative}
#app .oc-reserve{display:block;visibility:hidden}
#app .oc-visible{position:absolute;inset:0}
#app .oc-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#app .oc-skip{position:absolute;right:9px;bottom:3px;min-height:24px;border:0;background:transparent;padding:2px 6px;font-size:10px;color:var(--op-muted)}
#app .oc-controls{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;margin:4px auto 8px;font-size:11px;color:var(--op-muted)}
#app .oc-controls>span{margin-right:3px}
#app .oc-controls button{min-height:32px;padding:5px 10px;font-size:11px;background:transparent}
#app .oc-controls button:hover{background:var(--op-soft);color:var(--op-blue)}
#app .oc-controls button:focus-visible,#app .oc-skip:focus-visible{outline:2px solid var(--op-blue);outline-offset:3px}
@keyframes oc-idle{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg)}}
@media(max-width:660px){#app .op-guide{gap:10px}#app .oc-stage{width:82px;flex-basis:82px;height:120px}#app .oc-actor,#app .op-guide .op-ami{width:78px;height:108px}#app .oc-shadow{left:21px;width:38px}#app .op-dialogue{min-height:155px;padding:12px 12px 30px}}
@media(prefers-reduced-motion:reduce){#app .op-guide .op-ami{animation:none!important}}
#app .oc-live2d{display:block;width:100%;height:100%}
#app .oc-stage:has(.oc-live2d){width:124px;flex-basis:124px;height:160px}
#app .oc-stage:has(.oc-live2d) .oc-actor{width:124px;height:160px}
#app .oc-enlarged{flex-wrap:wrap}
#app .oc-enlarged .oc-stage:has(.oc-live2d),#app .oc-enlarged .oc-stage .oc-actor{width:330px;height:440px;flex-basis:330px;max-width:100%}
#app .oc-model-status{font-size:11px;color:var(--op-muted)}
#app .oc-rig-panel{margin:12px auto;max-width:600px;border:1px solid var(--op-blue);border-radius:12px;padding:12px;color:var(--op-ink,inherit)}
#app .oc-rig-panel summary{cursor:pointer;font-weight:600}
#app .oc-rig-panel p{font-size:12px;line-height:1.5}
#app .oc-rig-buttons{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
#app .oc-rig-buttons button{font-size:12px;padding:6px 10px;min-height:32px}
#app .oc-param{display:grid;grid-template-columns:minmax(110px,1fr) minmax(80px,1fr) 45px;gap:8px;align-items:center;font-size:12px;padding:5px 0}
#app .oc-param input{min-width:0;width:100%;accent-color:var(--op-blue)}
#app .oc-param output{text-align:right;font-variant-numeric:tabular-nums}
