:root{color-scheme:light;--red:#811f27;--ink:#262221;--paper:#fffaf1;--line:#d8cbbc}*{box-sizing:border-box}body{margin:0;background:#e9e1d7;color:var(--ink);font-family:"Microsoft YaHei","Noto Sans CJK SC",sans-serif}button,select,input{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:#fffcf7;border-radius:6px;color:var(--ink);padding:9px 15px;min-height:42px}button:hover{background:#f2e4d3}button:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #b37129;outline-offset:3px}button:disabled{opacity:.38;cursor:default}.primary{background:var(--red);color:white;border-color:var(--red)}#toolbar{height:64px;padding:10px 20px;display:flex;align-items:center;gap:8px;background:#fffaf1;border-bottom:1px solid #dbd0c2}.brand{color:var(--red);font-weight:bold;margin-right:12px}.spacer{flex:1}#pages{max-width:310px;width:26vw;border:0;background:transparent;font-size:16px;padding:8px}#viewport{height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center;overflow:hidden}#stage{position:relative;width:1280px;height:720px;flex:none;transform-origin:center center;background:var(--paper);overflow:hidden;box-shadow:0 12px 55px #47332422}.slide-title{position:absolute;left:80px;top:37px;font-size:42px;font-weight:700;color:var(--red);margin:0;line-height:1.35}.slide-title:after{content:'';position:absolute;top:70px;left:0;width:1120px;border-bottom:1px solid #d7c4ac}.item{position:absolute;margin:0;white-space:pre-line;line-height:1.45}.item.image{object-fit:contain}.page-number{position:absolute;right:30px;bottom:17px;font-size:16px;color:#8c7660}.audio-control,.tool-control{position:absolute;font-size:21px;z-index:3;padding:8px 19px;min-height:45px;color:var(--red)}.tool-control{background:#811f27;color:white}.cover .slide-title{display:none}.gallery-text-backdrop{position:absolute;left:58px;top:145px;width:750px;height:395px;background:#fffaf1eF}.voiceStatus{position:absolute;left:400px;bottom:28px;font-size:20px;color:#6e5034}#notes{position:fixed;bottom:0;left:0;right:0;z-index:15;background:#fffffff7;padding:20px 30px;border-top:2px solid #811f27;line-height:1.8;max-height:32vh;overflow:auto;font-size:17px}dialog{border:0;border-radius:12px;padding:28px;max-width:950px;width:94vw;max-height:94vh;box-shadow:0 25px 100px #0004;background:var(--paper)}dialog::backdrop{background:#241616a8}dialog header{display:flex;gap:30px;align-items:flex-start;justify-content:space-between}h2{font-size:28px;margin:4px 0 16px;color:var(--red)}h3{margin-top:0;font-size:23px}.eyebrow{font-size:14px;color:#865e3c;margin:0 0 6px}.close{font-size:24px;min-width:46px}.method{font-size:15px;color:#715f4f;margin:0 0 20px}.eval-top{display:flex;gap:24px;margin-bottom:12px}.eval-top label{display:flex;align-items:center;gap:12px}.eval-top input,.eval-top select{padding:9px;border:1px solid var(--line);border-radius:4px;max-width:180px;background:white}#criteria{border-top:1px solid var(--line)}.criterion{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);gap:12px}.criterion b{font-size:18px}.criterion p{margin:4px 0 0;color:#796958;font-size:14px}.criterion select{min-width:160px;padding:10px;background:white;border:1px solid var(--line);font-size:17px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.actions button{font-size:17px}#result{margin-top:24px;border-top:2px solid #bc9970;padding-top:22px}#feedback{font-size:22px;line-height:1.8;white-space:pre-line}small{color:#7c6a58;line-height:1.6}#evalError{color:#a21922;min-height:18px;font-size:15px;margin:8px 0}#galleryDialog{max-width:1200px}#panorama{height:52vh;position:relative;background:#c8b699;border-radius:7px;overflow:hidden}#pano{width:100%;height:100%;display:block;cursor:grab;touch-action:none}#pano:active{cursor:grabbing}.pano-help{position:absolute;left:16px;bottom:15px;background:#fffaf1df;padding:7px 12px;color:#684c37;font-size:14px;pointer-events:none}#hotspotInfo{font-size:21px;line-height:1.6;min-height:88px;margin:8px 0 16px}.pano-actions{margin:14px 0}#drumDialog{max-width:570px;text-align:center}#drumPad{margin:15px auto;width:210px;height:210px;border-radius:50%;border:12px solid #bda080;background:#811f27;color:white;font-size:60px;box-shadow:0 10px 0 #b5997a}#drumPad span{font-size:17px}#drumPad:active{background:#a1313a;transform:translateY(3px)}@media(max-width:900px){#toolbar{height:auto;min-height:64px;gap:5px;padding:8px;flex-wrap:wrap}.brand{display:none}#toolbar button{font-size:13px;padding:7px 9px}.spacer{display:none}#pages{width:38vw}#viewport{height:calc(100vh - 104px)}.eval-top{flex-wrap:wrap}.criterion{align-items:flex-start}.criterion select{min-width:140px}dialog{padding:20px}.pano-help{font-size:12px}#panorama{height:42vh}}

/* Full-viewport immersive panorama, independent from courseware slide framing. */
#galleryDialog{position:fixed;inset:0;margin:0;padding:0;border:0;border-radius:0;width:100vw;height:100dvh;max-width:none;max-height:none;overflow:hidden;background:#171411;color:#fff;box-shadow:none}
#galleryDialog::backdrop{background:#171411}#galleryDialog #panorama{position:absolute;inset:0;width:100%;height:100%;border-radius:0}#galleryDialog #pano{width:100%;height:100%}
#galleryDialog>header{position:absolute;z-index:2;top:0;left:0;right:0;padding:22px 28px;background:linear-gradient(#0009,transparent);pointer-events:none;align-items:center}
#galleryDialog>header button{pointer-events:auto;background:#241b16cc;border-color:#ffffff55;color:#fff}
#galleryDialog h2{color:#fff;margin:0;font-size:26px;text-shadow:0 2px 8px #0006}#galleryDialog .eyebrow{color:#f4dec0}
#galleryDialog .pano-actions{position:absolute;z-index:3;left:26px;bottom:30px;margin:0;max-width:calc(100% - 52px)}
#galleryDialog .pano-actions button{background:#fff9efeb;box-shadow:0 4px 20px #0002;border-color:#ffffff80}
#galleryDialog #hotspotInfo{position:absolute;z-index:2;left:28px;bottom:104px;width:min(620px,calc(100% - 56px));max-height:32vh;overflow:auto;min-height:0;padding:18px 22px;margin:0;border-radius:9px;background:#241b16da;color:#fff;font-size:21px;line-height:1.65;backdrop-filter:blur(9px)}
#galleryDialog #hotspotInfo:empty{display:none}#galleryDialog>small{position:absolute;z-index:2;right:22px;bottom:6px;color:#fff9;font-size:11px;pointer-events:none}
#galleryDialog .pano-help{left:auto;right:24px;bottom:85px;background:#241b16bb;color:#fff;font-size:12px}
.vr-header-actions{display:flex;gap:9px;pointer-events:auto}#galleryDialog.clean-ui>header,#galleryDialog.clean-ui .pano-actions,#galleryDialog.clean-ui #hotspotInfo,#galleryDialog.clean-ui .pano-help,#galleryDialog.clean-ui>small{display:none}
#restoreVrUi{position:absolute;z-index:4;right:20px;top:20px;display:none;background:#241b1680;color:#fff;border-color:#ffffff44}#galleryDialog.clean-ui #restoreVrUi{display:block}
@media(max-width:700px){#galleryDialog>header{padding:14px}#galleryDialog h2{font-size:20px}#galleryDialog .pano-actions{left:14px;bottom:26px;gap:6px}#galleryDialog .pano-actions button{font-size:13px;padding:8px}#galleryDialog #hotspotInfo{left:14px;bottom:124px;width:calc(100% - 28px);font-size:17px}#galleryDialog .pano-help{display:none}}
