/* 轻纹理校园与立体角色：独立设置分组，不依赖 legend 外边距排版。 */
.game-shell{border-color:#dce3da;box-shadow:0 16px 50px #203d4210;background:#fffcf6}
.play-layout{grid-template-columns:minmax(0,1.35fr) minmax(390px,1fr)}
.visual-column{padding:22px;background:radial-gradient(ellipse at 50% 35%,#faf8ee,#e8eee4);border-color:#dce3da}
.scene{border:0;border-radius:14px;box-shadow:0 12px 30px #213c3e18;isolation:isolate}
.campus-art{object-fit:cover;image-rendering:auto}
.scene-label,.scene-clock{top:12px;border:1px solid #ffffff60;border-radius:20px;padding:7px 10px;backdrop-filter:blur(10px);font-size:8px;letter-spacing:.7px}
.scene-label{left:12px;background:#fffcf0e8;color:#294b41}.scene-clock{right:12px;background:#21463edb}
.scene-host,.scene-student,.result-host{filter:drop-shadow(0 5px 3px #343b352e);width:18%;bottom:4%}
.scene-host{left:13%}.scene-student{left:55%;width:17%}
.scene-bubble{left:6%;bottom:50%;max-width:44%;border:1px solid #ffffffc9;background:#fffcf2f5;border-radius:13px;box-shadow:0 5px 18px #254a4320;padding:10px 13px;color:#2f5049;font-weight:600}
.scene-bubble:after{background:#fffcf2;border:0;width:10px;height:10px;bottom:-5px}
.campus-caption{padding:16px 3px 3px;line-height:1.7}.campus-caption strong{font-size:10px;letter-spacing:1px}.campus-caption>span:last-child{text-align:right}
.person-3d{position:relative;display:block;width:100%;aspect-ratio:3/4;isolation:isolate}
.character-art{display:block;width:100%;height:100%;object-fit:contain;transform-origin:50% 95%;animation:clay-breathe 3.5s ease-in-out infinite}
.person-3d .crown{position:absolute;left:28%;top:-8%;width:44%;height:auto;filter:drop-shadow(0 2px 2px #6f552f66)}
.person-3d.pose-wave .character-art{animation:clay-greet 1.8s ease-in-out infinite}
.person-3d.pose-excellent .character-art{animation:clay-jump 1.1s ease-in-out infinite}
.person-3d.pose-very-nice .character-art{animation:clay-approve 1.5s ease-in-out infinite}
.person-3d.pose-good .character-art{animation:clay-approve 2.2s ease-in-out infinite}
.person-3d.pose-average .character-art{animation:clay-shrug 2.2s ease-in-out infinite}
.person-3d.pose-poor .character-art{animation:clay-sad 3s ease-in-out infinite}
.stage{background:linear-gradient(#c79d6e,#9c714b);border-top:7px solid #f1d5a2;border-radius:8px 8px 4px 4px;box-shadow:0 6px 0 #76583d,0 10px 16px #243e4933}
.result-host{left:2%;width:18%;bottom:6%}.result-bubble{left:3%;bottom:52%;max-width:32%}
.crowd-person{width:11%}.crowd-person.player{width:17%;bottom:24%}.crowd-label{background:#f9f9edeb;padding:5px;font-weight:500}
#setup-form{padding:26px 28px 22px;background:#fffcf6}
#setup-form h2{font-size:28px;margin:9px 0 23px;line-height:1.15}
#setup-form .section-top>span{font-size:9px;letter-spacing:1px}
#setup-form fieldset{display:block;margin:0 0 20px;padding:0;min-inline-size:0}
#setup-form .field-title{display:block;float:none;width:100%;margin:0;padding:0 0 10px;font:700 10px/1.4 system-ui;letter-spacing:1.1px;color:#49655b}
#setup-form .field-title span{margin:0 5px;color:#b3bcb1}
#setup-form .choices{gap:10px}
#setup-form .choice{gap:10px;min-height:64px;padding:12px;border:1px solid #dfe5db;border-radius:12px;background:#fffefa;box-shadow:0 2px 3px #2f4b3e03;transition:background .18s,border-color .18s,box-shadow .18s}
#setup-form .choice:hover{background:#f2f6ef;border-color:#acbdb0}
#setup-form .choice:has(input:checked){background:#edf3e8;border-color:#648470;box-shadow:inset 0 0 0 1px #648470,0 3px 8px #3c634d0b}
#setup-form .choice-icon{display:grid;place-items:center;flex:0 0 28px;font-size:21px;color:#426758}
#setup-form .choice strong{font-size:12px;font-weight:650;line-height:1.4}
#setup-form .choice small{font-size:10px;line-height:1.5;margin-top:2px;color:#728176}
#setup-form .topic-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#setup-form .topic-grid .choice{min-height:66px;flex-direction:column;gap:7px;justify-content:center;padding:10px 5px}
#setup-form .topic-grid .choice-icon{flex-basis:auto;font-size:20px;line-height:22px}
#setup-form .topic-grid strong{font-size:10px;line-height:1.3}
#setup-form .avatar-grid{gap:8px;grid-template-columns:repeat(6,minmax(0,1fr))}
#setup-form .avatar-choice{min-height:86px;padding:6px 2px 8px;border-radius:12px;background:#f4f1e7;border-color:transparent;gap:4px;transition:background .18s,border-color .18s}
#setup-form .avatar-choice:hover{background:#ecefe2;border-color:#b9c7ae}
#setup-form .avatar-choice:has(input:checked){background:#f6e9c9;border-color:#b8944e;box-shadow:inset 0 0 0 1px #b8944e}
#setup-form .avatar-choice .person{width:48px;max-width:100%;height:64px;flex-shrink:0}
#setup-form .avatar-choice .character-art{animation:none}
#setup-form .avatar-choice>span:last-child{font:650 10px/1.2 system-ui}
#setup-form .start-button{margin:0;min-height:50px;border-radius:12px;background:#254f43;box-shadow:0 4px 10px #254f4318}
#setup-form .start-button:hover{background:#366753}
#setup-form .selection-note{margin-top:10px;font-size:10px;line-height:1.6}
#setup-form .timer-option{margin:-12px 0 16px;padding:0 3px;font-size:11px}
@keyframes clay-breathe{50%{transform:translateY(-1%)}}
@keyframes clay-greet{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg) translateY(-1%)}}
@keyframes clay-jump{0%,100%{transform:translateY(0) scaleY(.98)}45%{transform:translateY(-9%) scaleY(1.02)}}
@keyframes clay-approve{50%{transform:translateY(-2%) rotate(2deg)}}
@keyframes clay-shrug{50%{transform:translateY(-2%) scaleY(1.02)}}
@keyframes clay-sad{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg) translateY(1%)}}
@media(max-width:1100px){.play-layout{grid-template-columns:minmax(0,1.2fr) minmax(360px,1fr)}.visual-column{padding:14px}#setup-form{padding:22px 20px}#setup-form .choice{gap:7px;padding:10px}#setup-form .choice-icon{flex-basis:22px}#setup-form .choice strong{font-size:11px}}
@media(max-width:820px){.play-layout{grid-template-columns:1fr}.visual-column{padding:16px;border-right:0;border-bottom:1px solid var(--line)}#setup-form{padding:24px}.scene-bubble{font-size:12px}#setup-form .choice strong{font-size:13px}#setup-form .topic-grid strong{font-size:12px}#setup-form .choice small{font-size:11px}.scene-label,.scene-clock{font-size:9px}}
@media(max-width:480px){.visual-column{padding:10px}.scene{border-radius:10px}.scene-label,.scene-clock{font-size:6px;letter-spacing:.2px;top:8px;padding:5px 7px}.scene-label{left:8px}.scene-clock{right:8px}.scene-bubble{font-size:9px;padding:7px 9px;border-radius:9px;bottom:49%}.result-bubble{font-size:8px;bottom:52%}.campus-caption{font-size:9px;padding-top:10px}.campus-caption strong{font-size:9px}#setup-form{padding:22px 16px}#setup-form h2{font-size:27px;margin-bottom:22px}#setup-form fieldset{margin-bottom:20px}#setup-form .choices{gap:10px}#setup-form .choice{min-height:68px;padding:10px}#setup-form .choice strong{font-size:12px}#setup-form .choice small{font-size:10px}#setup-form .topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#setup-form .topic-grid .choice{flex-direction:row;min-height:52px;gap:10px;text-align:left;justify-content:flex-start;padding:10px}#setup-form .topic-grid strong{font-size:11px}#setup-form .topic-grid .choice-icon{flex-basis:22px}#setup-form .avatar-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}#setup-form .avatar-choice{min-height:96px}#setup-form .avatar-choice .person{width:51px;height:68px}#setup-form .avatar-choice>span:last-child{font-size:11px}.crowd-label{font-size:7px}}
@media(prefers-reduced-motion:reduce){.character-art,.person-3d .crown{animation:none!important}}
