*{box-sizing:border-box}[hidden]{display:none!important}:root{color:#f5e8d0;font-synthesis:none;background:#17120e;font-family:Noto Sans TC,Microsoft JhengHei,sans-serif}body{margin:0}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer;color:#f5e8d0;background:#2c2118;border:1px solid #806443;border-radius:9px;min-height:44px;padding:11px 16px}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible{outline-offset:3px;outline:3px solid #efc676}a:focus-visible{outline-offset:3px;outline:3px solid #efc676}input:focus-visible{outline-offset:3px;outline:3px solid #efc676}a{color:#e6c78a}h1{margin:16px 0;font-family:serif;font-size:max(38px,min(5vw,64px));line-height:1.2}h2{margin:0 0 8px;font-size:21px}.room-header{border-bottom:1px solid #634b30;align-items:center;gap:24px;height:68px;padding:12px 4vw;display:flex}.room-header>a:last-child{margin-left:auto}.room-brand{color:#e8b75c;font-family:serif;font-size:28px;text-decoration:none}.room-brand span{font-size:16px}.eyebrow{letter-spacing:.18em;color:#e9b960;font-size:12px}.lobby{max-width:680px;margin:45px auto;padding:0 28px 24px}.intro{color:#c9b89f;line-height:1.8}.mode-tabs{gap:10px;margin:28px 0 20px;display:flex}.mode-tabs button{flex:1}.mode-tabs [aria-pressed=true]{color:#271b11;background:#f1ce8b;border-color:#f1ce8b}form{gap:16px;display:grid}label{color:#dacaaf;gap:8px;font-size:14px;display:grid}input{color:#fff;background:#241c15;border:1px solid #806443;border-radius:8px;width:100%;padding:14px;font-size:18px}#code{letter-spacing:.13em;font-size:25px}#code::placeholder{letter-spacing:0;font-size:16px}.primary{color:#fff7e9;background:#a73124;border-color:#c75b43;font-weight:700}.secondary{width:100%;margin-top:12px}.hint{color:#b9a78f;font-size:12px;line-height:1.7}.setup-link{font-size:13px}.connection-status{text-align:center;color:#f0c989;z-index:10;background:#241c15;min-height:38px;margin:0;padding:10px 20px;font-size:13px;position:-webkit-sticky;position:sticky;bottom:0}.session{padding:16px 22px}.room-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.room-toolbar strong{letter-spacing:.15em;color:#f2cf8e;font:700 30px monospace}.room-toolbar button{padding:8px 12px;font-size:12px}.room-toolbar>div{align-items:center;gap:12px;display:flex}.performance{grid-template-columns:minmax(0,1fr) 320px;gap:18px;display:grid}.stage-wrap{background:#100c09;border:1px solid #624827;border-radius:14px;min-width:0;min-height:400px;position:relative;overflow:hidden}#stage{width:100%;height:100%;min-height:400px}#stage canvas{width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.stage-notice{text-align:center;color:#ebce97;background:rgba(33,23,11,.91);border-radius:8px;max-width:90%;padding:14px 20px;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}.fullscreen{background:rgba(33,23,11,.867);position:absolute;bottom:12px;right:12px}.playback-badge{background:#8c251d;border-radius:8px;padding:9px 14px;position:absolute;top:16px;left:20px}.stage-wrap:-webkit-full-screen{border:0;border-radius:0;width:100vw;height:100vh}.stage-wrap:-moz-full-screen{border:0;border-radius:0;width:100vw;height:100vh}.stage-wrap:fullscreen{border:0;border-radius:0;width:100vw;height:100vh}.stage-wrap:-webkit-full-screen #stage{height:100vh}.stage-wrap:-moz-full-screen #stage{height:100vh}.stage-wrap:fullscreen #stage{height:100vh}.room-side{background:#211912;border:1px solid #654b2e;border-radius:14px;padding:18px}.room-side>p{color:#c6b194;font-size:13px;line-height:1.6}.characters{grid-template-columns:1fr 1fr;gap:8px;display:grid}.character{text-align:left;min-height:80px;padding:10px}.character strong,.character small{display:block}.character small{color:#c9b38d;overflow-wrap:anywhere;margin-top:6px;font-size:11px}.character[aria-pressed=true]{background:#603324;border-color:#f0c174}.character:disabled{opacity:.65}#controls{margin-top:14px}#teacherControls{gap:9px;margin-top:18px;display:grid}#release{margin-top:12px;font-size:12px}#viewLabel{color:#ccb693;font-size:13px}.rod-control-surface{font-size:12px}.rod-control-heading{gap:6px;margin-bottom:10px;display:flex}.rod-control-heading span{display:none}.rod-control-pads{grid-template-columns:1fr 1fr;gap:8px;display:grid}.rod-pad{touch-action:none;background:radial-gradient(#61492d,#1b130d);border:1px solid #81603c;border-radius:8px;height:160px;position:relative;overflow:hidden}.rod-pad-label{color:#e7c796;pointer-events:none;font-size:10px;position:absolute;top:8px;left:8px}.rod-handle{touch-action:none;color:#fff;background:#a52b20;border:3px solid #efc778;border-radius:50%;width:46px;height:46px;min-height:46px;padding:0;position:absolute;transform:translate(-50%,-50%)}.rod-control-foot{color:#b9a78f;margin-top:10px;font-size:10px}.rod-control-surface>button{margin-top:10px}.offline #controls{pointer-events:none;opacity:.35}.offline #stage{opacity:.55}.offline .stage-notice{display:block}.room-side #recordStatus{color:#efc778;margin:2px 0;font-size:13px}.session .performance{min-height:calc(100dvh - 210px)}@media (max-width:900px){.session{padding:12px}.performance{grid-template-columns:minmax(0,1fr) 290px;gap:10px}.room-side{padding:12px}.room-toolbar{flex-wrap:wrap}.room-header{height:56px}.stage-wrap,#stage{min-height:340px}.room-toolbar strong{font-size:24px}}@media (max-width:650px){.lobby{margin-top:28px}.performance{grid-template-columns:1fr}.stage-wrap,#stage{height:42vh;min-height:260px}.characters{grid-template-columns:repeat(4,1fr)}.character{padding:8px;font-size:13px}.room-toolbar>div{flex-wrap:wrap}.room-header{gap:12px;font-size:12px}.rod-pad{height:150px}.session .performance{min-height:0}}.room-control-picker{background:#17110c;border:1px solid #654b2e;border-radius:10px;margin:0 0 12px;padding:10px}.room-control-picker>strong{color:#edc466;margin-bottom:8px;font-size:13px;display:block}.room-control-picker>[role=group]{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.room-control-picker button{min-height:40px;padding:6px;font-size:11px}.room-control-picker button[aria-pressed=true],.pointer-touch-target button[aria-pressed=true]{color:#24170e;background:#efc778;border-color:#efc778;font-weight:700}.room-control-picker small{color:#b9a78f;min-height:18px;margin-top:7px;display:block}.pointer-control-surface,.gesture-control-surface{font-size:12px}.pointer-control-surface>p,.gesture-control-surface>p{color:#c6b194;line-height:1.5}.pointer-touch-target{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:7px;display:grid}.pointer-touch-target button{padding:6px;font-size:11px}.pointer-control-pad{text-align:center;color:#e7c796;touch-action:none;cursor:crosshair;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:radial-gradient(#61492d,#1b130d);border:1px solid #81603c;border-radius:8px;place-items:center;height:150px;display:grid}.pointer-control-surface>button,.gesture-control-surface>button{margin-top:10px}.gesture-control-surface>[role=status]{color:#efc778;border:1px solid #81603c;border-radius:8px;padding:12px;display:block}.student-setup{background:#211912;border:1px solid #654b2e;border-radius:12px;grid-template-columns:minmax(150px,.55fr) minmax(290px,1fr) minmax(400px,1.5fr) auto;align-items:start;gap:10px;margin-bottom:10px;padding:10px;display:grid}.student-setup-heading h2{margin:2px 0 5px}.student-setup-heading p{color:#c6b194;margin:0;font-size:12px;line-height:1.5}.student-setup .room-control-picker{margin:0;padding:8px}.student-setup .characters{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.student-setup .character{min-height:68px;padding:8px}.student-setup #release{align-self:center;margin:0;padding:8px 10px;font-size:11px}.room-appearance-picker{color:#edc466;border-top:1px solid #654b2e;grid-column:1/-1;grid-template-columns:none;align-items:center;gap:9px;padding-top:7px;font-weight:700;display:flex}.room-appearance-picker>label{align-items:center;gap:9px;font-weight:700;display:flex}.room-appearance-picker select{color:#f5e8d0;max-width:260px;min-height:38px;font:inherit;background:#2c2118;border:1px solid #806443;border-radius:7px;padding:7px 9px}.room-appearance-picker small{color:#b9a78f;font-weight:400}.room-paper-studio{color:#fff7e9;white-space:nowrap;background:#713025;border:1px solid #efc778;border-radius:7px;align-items:center;min-height:38px;padding:7px 12px;text-decoration:none;display:inline-flex}.stage-view-badge{z-index:2;color:#efc778;background:rgba(33,23,11,.85);border:1px solid #8e7049;border-radius:20px;padding:6px 9px;font-size:11px;position:absolute;top:12px;left:12px}.student-session .session .performance{min-height:calc(100dvh - 395px)}.student-session .room-side{align-self:stretch}.student-session #controls{margin-top:0}.teacher-session .student-setup{grid-template-columns:200px 1fr}.teacher-session .student-setup .characters{max-width:720px}.teacher-session .room-appearance-picker{display:none}.teacher-session .stage-view-badge{color:#f5e8d0}.student-session[data-room-scene=shuihu] .student-setup .characters,.student-session[data-room-scene=xiyou] .student-setup .characters,.teacher-session[data-room-scene=shuihu] .student-setup .characters,.teacher-session[data-room-scene=xiyou] .student-setup .characters{grid-template-columns:repeat(2,minmax(0,1fr))}.student-session[data-room-scene=pilgrimage] .student-setup .characters,.teacher-session[data-room-scene=pilgrimage] .student-setup .characters{grid-template-columns:repeat(5,minmax(0,1fr))}.student-session[data-room-scene=pilgrimage] .performance,.teacher-session[data-room-scene=pilgrimage] .performance{grid-template-columns:minmax(0,1fr) 300px}.student-session[data-room-scene=pilgrimage] .stage-wrap,.teacher-session[data-room-scene=pilgrimage] .stage-wrap{min-height:520px}@media (max-width:1050px){.student-setup{grid-template-columns:280px minmax(400px,1fr) auto}.student-setup-heading{display:none}.teacher-session .student-setup{grid-template-columns:1fr}.teacher-session .student-setup-heading{display:block}.student-session .session .performance{min-height:calc(100dvh - 325px)}}@media (max-width:700px){.student-setup{grid-template-columns:1fr}.student-setup .characters{grid-template-columns:repeat(4,1fr)}.student-setup #release{width:100%}.room-appearance-picker{flex-wrap:wrap;align-items:stretch}.room-appearance-picker>label{justify-content:space-between;width:100%}.room-appearance-picker select{flex:1;min-width:0}.room-paper-studio{flex:1;justify-content:center}.room-appearance-picker>small{width:100%}.student-session .stage-wrap{z-index:3;position:-webkit-sticky;position:sticky;top:0}.student-session .session .performance{min-height:0}}@media (min-width:651px) and (max-height:850px){.room-header{height:54px}.session{padding:12px 18px}.room-side{padding:12px}.character{min-height:64px}.rod-pad{height:130px}.rod-control-foot{line-height:1.4}.room-side>p{margin:8px 0}.room-toolbar{margin-bottom:10px}.room-toolbar strong{font-size:26px}}.room-directory{max-width:1400px;margin:32px auto;padding:0 28px}.directory-heading{justify-content:space-between;align-items:center;gap:24px;display:flex}.directory-heading h1{margin:10px 0;font-size:36px}.directory-heading p{color:#c9b89f;line-height:1.6}.directory-heading>span{color:#efc778;white-space:nowrap;border:1px solid #8e7049;border-radius:30px;padding:12px 18px;font-size:14px}.directory-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:20px;display:grid}.room-card{text-align:left;background:#241c15;flex-direction:column;gap:8px;min-height:205px;padding:18px;display:flex}.room-card.has-students{background:#223026;border-color:#83ad8b}.room-card-title{color:#e8c78b;font-size:13px}.room-card-code{letter-spacing:.12em;font:700 27px monospace}.room-card-count{color:#c9b89f;font-size:12px}.has-students .room-card-count{color:#aee2b1}.room-card-characters{color:#d9c39a;font-size:11px;line-height:1.9}.room-card-action{color:#edc466;margin-top:auto;font-size:12px}.teacher-lobby .lobby{border-top:1px solid #634b30;max-width:1400px;margin:24px auto;padding:20px 28px}.teacher-lobby .lobby>h1,.teacher-lobby .lobby>.eyebrow,.teacher-lobby .lobby>.intro{display:none}.teacher-lobby .mode-tabs{max-width:460px;margin:0 0 20px}.teacher-lobby #joinForm{grid-template-columns:minmax(220px,420px) 200px;align-items:end}.teacher-lobby #join{height:60px}.teacher-lobby #create{width:auto;margin:16px 0 0}#switchRoomLabel{gap:4px;font-size:11px}#switchRoom{color:#f5e8d0;max-width:250px;min-height:40px;font:inherit;background:#2c2118;border:1px solid #806443;border-radius:8px;padding:8px}.room-toolbar>div{flex-wrap:wrap}@media (max-width:1100px){.directory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.directory-heading{flex-direction:column;align-items:flex-start;gap:0}.room-card{min-height:185px}}@media (max-width:650px){.room-directory{margin-top:24px;padding:0 16px}.directory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.directory-heading h1{font-size:28px}.room-card{padding:12px}.room-card-code{font-size:24px}.teacher-lobby #joinForm{grid-template-columns:1fr}.teacher-lobby .lobby{padding:20px 16px}}.directory-groups{gap:30px;margin-top:24px;display:grid}.directory-groups>section{background:#1d1712;border:1px solid #654b2e;border-radius:14px;padding:18px}.room-group-heading{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.room-group-heading>div{align-items:center;gap:11px;display:flex}.room-group-heading h2{color:#f5e8d0;margin:0;font:700 25px/1.25 serif}.room-group-heading p{color:#b9a78f;margin:0;font-size:12px}.room-group-mark{color:#efc778;letter-spacing:.12em;border:1px solid #b98b48;border-radius:999px;padding:5px 8px;font-size:11px}.directory-groups .directory-grid{margin-top:14px}.directory-groups [data-room-group=xiyou]{background:#211615;border-color:#76524a}.directory-groups [data-room-group=xiyou] .room-group-mark{color:#f2a68f;border-color:#b8634e}@media (max-width:650px){.directory-groups{gap:18px}.directory-groups>section{padding:12px}.room-group-heading{flex-direction:column;align-items:flex-start;gap:6px}.room-group-heading h2{font-size:21px}.room-group-heading p{line-height:1.5}}.room-header>nav{align-items:center;gap:18px;margin-left:auto;display:flex}.room-header>nav a{text-decoration:none}.room-header>nav a:first-child{border:1px solid #806443;border-radius:8px;padding:8px 11px}@media (max-width:650px){.room-header>nav{gap:8px}.room-header>nav a{font-size:12px}.room-header>nav a:first-child{padding:6px 8px}}.student-identity{color:#dacaaf;background:#241c15;border:1px solid #806443;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.student-identity span{font-size:13px}.student-identity strong{color:#f1ce8b;letter-spacing:.04em;font-size:18px}@media (min-width:768px) and (max-width:1366px) and (orientation:landscape){body.student-session{overscroll-behavior:none;height:100dvh;overflow:hidden}.student-session .room-header{height:50px;padding:7px calc(12px + env(safe-area-inset-right)) 7px calc(12px + env(safe-area-inset-left))}.student-session .room-brand{font-size:22px}.student-session .room-brand span{font-size:13px}.student-session .session{height:calc(100dvh - 86px);min-height:0;padding:7px calc(10px + env(safe-area-inset-right)) 7px calc(10px + env(safe-area-inset-left));flex-direction:column;display:flex}.student-session .room-toolbar{flex:none;min-height:36px;margin-bottom:6px}.student-session .room-toolbar strong{font-size:22px}.student-session .room-toolbar button{min-height:34px;padding:5px 9px}.student-session .student-setup{flex:none;grid-template-columns:116px minmax(0,1fr) auto;gap:6px;margin-bottom:6px;padding:6px}.student-session .student-setup-heading{display:none}.student-session .student-setup .room-control-picker{flex-direction:column;justify-content:center;align-self:stretch;min-width:0;padding:5px 7px;display:flex}.student-session .room-control-picker>strong{margin:0;font-size:12px}.student-session .room-control-picker>[role=group],.student-session .room-control-picker small{display:none}.student-session[data-room-scene=pilgrimage] .student-setup .characters{grid-template-columns:repeat(8,minmax(0,1fr));gap:5px}.student-session .student-setup .character{text-align:center;min-height:50px;padding:5px 7px}.student-session .student-setup .character small{display:none}.student-session .student-setup #release{align-self:stretch;min-height:50px;padding:5px 8px}.student-session .room-appearance-picker{gap:7px;padding-top:5px;font-size:12px}.student-session .room-appearance-picker select,.student-session .room-paper-studio{min-height:34px;padding-top:5px;padding-bottom:5px}.student-session .performance,.student-session[data-room-scene=pilgrimage] .performance{flex:auto;min-height:0;display:block}.student-session .stage-wrap,.student-session[data-room-scene=pilgrimage] .stage-wrap,.student-session #stage{width:100%;height:100%;min-height:0}.student-session .room-side{background:0 0;border:0;width:0;height:0;min-height:0;padding:0;position:static}.student-session #controls{margin:0}.student-session .fullscreen{top:10px;bottom:auto;right:10px}.student-session .connection-status{min-height:36px;padding:8px 16px}}.character.locked{opacity:.55;border-style:dashed}.character.locked small{color:#c9997a}.character-lock-row{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.character-lock-row span{color:#d7c09a;font-size:11px}.character-lock-row input{accent-color:#efc778;cursor:pointer;width:18px;height:18px}.teacher-session .character{cursor:default}.teacher-session .character:disabled{opacity:1}
