*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;background:#101010;color:#fff;font-family:Arial,sans-serif}
body{display:flex;justify-content:center}
.app{width:min(1100px,100%);min-height:100vh;background:#181818;display:flex;flex-direction:column}
.topbar{height:68px;padding:12px 20px;background:#222;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #333}
.topbar h1{font-size:19px;margin:0 0 4px}
#sceneTitle{font-size:12px;color:#aaa}
.counter{font-size:13px;color:#aaa}
.viewer{position:relative;flex:1;min-height:0;padding:18px 70px;display:flex;align-items:center;justify-content:center;background:#0b0b0b}
.panel{position:relative;width:min(100%,800px);aspect-ratio:1/1;overflow:hidden;border-radius:10px;background:#000;box-shadow:0 12px 40px #0008}
.panel img{width:100%;height:100%;display:block;object-fit:cover}
.scene-btn{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:80px;border:0;border-radius:12px;background:#292929e8;color:#fff;font-size:55px;line-height:50px;cursor:pointer;z-index:5}
.scene-btn:hover{background:#444}
.scene-btn:disabled{opacity:.25;cursor:not-allowed}
.scene-btn.left{left:12px}
.scene-btn.right{right:12px}
.voice-indicator{position:absolute;left:24px;bottom:22px;display:none;align-items:center;gap:5px;padding:8px 11px;border-radius:18px;background:#000b}
.voice-indicator.active{display:flex}
.voice-indicator span{display:block;width:4px;height:8px;background:#fff;border-radius:4px;animation:voice .45s infinite alternate}
.voice-indicator span:nth-child(2){animation-delay:.13s}
.voice-indicator span:nth-child(3){animation-delay:.26s}
@keyframes voice{from{height:5px}to{height:22px}}
.controls{padding:15px 20px 20px;background:#222;border-top:1px solid #333}
.dialog-info{font-size:13px;color:#aaa;margin-bottom:12px}
.control-row{display:flex;gap:9px}
button{border:0;border-radius:8px;padding:11px 16px;background:#383838;color:#fff;cursor:pointer;font-size:14px}
button:hover{background:#4a4a4a}
button.primary{background:#fff;color:#111;font-weight:bold}
audio{width:100%;margin-top:12px}
@media(max-width:600px){
 .viewer{padding:12px 52px}
 .scene-btn{width:40px;height:62px;font-size:42px}
 .scene-btn.left{left:7px}.scene-btn.right{right:7px}
 .panel{border-radius:6px}
 .topbar{padding:10px 14px}
}
\n\n/* Horizontal scene strip - compact thumbnails */
.scene-list-wrap{margin-top:16px;min-width:0}
.scene-list-title{font-size:12px;color:#aaa;margin-bottom:8px}
.scene-list{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;padding:2px 2px 8px;scroll-behavior:smooth;align-items:flex-start}
.scene-list::-webkit-scrollbar{height:7px}
.scene-list::-webkit-scrollbar-track{background:#181818;border-radius:8px}
.scene-list::-webkit-scrollbar-thumb{background:#4a4a4a;border-radius:8px}
.scene-card{position:relative;flex:0 0 25%;width:25%;max-width:150px;aspect-ratio:16/9;height:auto !important;min-width:0;border:2px solid #3a3a3a;border-radius:8px;overflow:hidden;background:#111;padding:0;cursor:pointer}
.scene-card img{position:absolute !important;inset:0;width:100% !important;height:100% !important;max-width:none !important;display:block;object-fit:cover}
.scene-card .scene-card-label{position:absolute;left:0;right:0;bottom:0;padding:7px 8px 6px;background:linear-gradient(transparent,#000d);font-size:12px;text-align:left;font-weight:bold;z-index:2}
.scene-card.active{border-color:#fff;box-shadow:0 0 0 1px #fff inset}
.scene-card:focus-visible{outline:3px solid #fff;outline-offset:2px}
@media(max-width:600px){
 .scene-list{gap:8px}
 .scene-card{flex-basis:25%;width:25%;max-width:120px}
}
