/* In-game art system. Images carry the atmosphere; cards keep decisions readable. */
#game>.controls{padding:14px 0 18px;gap:9px}#game>.controls button{font-size:11px;padding:10px 13px;background:#152724}#status{font-size:12px}.illustrated-identity{display:flex;gap:22px;align-items:stretch;overflow:hidden;padding:0!important;min-height:166px;border:1px solid #b6a27388!important;box-shadow:0 8px 30px #0003;position:relative}.illustrated-identity .identity-illustration{width:128px;min-width:128px;position:relative;background:#172925;overflow:hidden}.identity-illustration img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:50% 22%;filter:saturate(.85)}.identity-illustration:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 70%,#172925)}.identity-copy{padding:19px 25px 19px 0;align-self:center;font-size:13px;line-height:1.9;color:#bbcbba}.identity-heading{font:600 23px 'Noto Serif SC','Songti SC',serif;letter-spacing:3px;color:#eddbad;margin-bottom:8px}.illustrated-identity[data-alignment=wolf]{background:linear-gradient(90deg,#3f252a,#202729)!important;border-color:#ad6c7266!important}.illustrated-identity[data-alignment=wolf] .identity-heading{color:#ecc4bb}.layout{grid-template-columns:minmax(0,1fr) 330px;gap:20px}.layout>.illustrated-table{min-height:840px;isolation:isolate;position:relative;padding:0 146px 32px;background:linear-gradient(#07151222,#07151255),url('art/table.webp') 50% 45%/cover;border:1px solid #9f8c5666;border-radius:12px;box-shadow:inset 0 0 100px #051310aa,0 16px 35px #0003}.layout>.illustrated-table:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#081514c4 0%,transparent 22%,transparent 78%,#081514c4 100%);pointer-events:none;z-index:-1}.room-label{display:none}.scene-badge{position:absolute;top:24px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:2px;background:#0a1c18e8;border:1px solid #ba9f5655;border-radius:30px;padding:9px 20px;color:#d5c49f;white-space:nowrap;z-index:3}.scene-illustration{width:min(270px,72%);height:360px;margin:65px auto 0;position:relative;pointer-events:none}.scene-frame{position:absolute;inset:0 12px 20px;border:1px solid #bea46d77;border-radius:130px 130px 8px 8px;overflow:hidden;background:#192720;box-shadow:0 0 0 5px #0f211cc9,0 0 0 6px #a58e5b55,0 15px 45px #0008}.scene-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;filter:saturate(.8)}.scene-shade{position:absolute;inset:0;background:linear-gradient(transparent 40%,#0a17147a 75%,#0a1714f5)}.scene-caption{position:absolute;bottom:16px;width:100%;text-align:center;display:flex;flex-direction:column;gap:10px;text-shadow:0 2px 9px #000}.scene-caption small{font-size:8px;letter-spacing:3px;color:#bca779}.scene-caption strong{font:600 20px 'Noto Serif SC','Songti SC',serif;color:#ead6a4;letter-spacing:2px}.scene-illustration[data-kind=speaker] .scene-frame{border-radius:120px 120px 10px 10px;inset:15px 8px 20px}.scene-illustration[data-kind=speaker] .scene-frame img{object-position:center;transform:scale(1.06)}.scene-illustration[data-kind=table]{height:330px}.scene-illustration[data-kind=table] .scene-frame{border-radius:100%;inset:15px 5px 35px}.layout>.illustrated-table>.card{margin:0!important;position:relative;z-index:2;background:linear-gradient(160deg,#153229f0,#0a201bed);border:1px solid #baa27177;border-radius:8px;padding:20px 20px 24px;box-shadow:0 10px 32px #0007;min-height:260px;text-align:center}.illustrated-table .card:before{content:'◆';position:absolute;top:-10px;left:calc(50% - 8px);font-size:16px;color:#c6aa70;text-shadow:0 1px 5px #000}.illustrated-table #phase{font-size:22px;letter-spacing:2px;margin:6px 0 12px;color:#ebd7a7}.illustrated-table #hint{font-size:13px;line-height:1.95;color:#b8cdbd}.illustrated-table .steptrack{font-size:9px;letter-spacing:1px;margin:0 0 14px;color:#789c8b}.illustrated-table #actions button{padding:11px 15px;font-size:12px;border:1px solid #b69c6266;border-radius:5px}.illustrated-table #actions button:first-child{background:linear-gradient(#e0c48b,#b29359);box-shadow:inset 0 1px #f6e3b4;color:#242b1e}.illustrated-table .players{inset:22px 18px;grid-template-columns:112px 112px;grid-template-rows:repeat(6,1fr);gap:3px;z-index:4}.illustrated-table .player{padding:6px 4px;gap:6px;min-height:122px;border:1px solid transparent;background:transparent;transition:border-color .2s,background .2s}.illustrated-table .player .avatar{width:64px;height:64px;border:2px solid #8c805f;box-shadow:0 0 0 3px #11251f,0 0 0 4px #87754c55;overflow:hidden;border-radius:50%;background:#23322a}.illustrated-table .player .avatar img{object-fit:cover;object-position:center;width:100%;height:100%;filter:saturate(.85)}.illustrated-table .player .seatnumber{top:7px;left:0;border-radius:30px;font-size:10px;padding:3px 6px;background:#12241dec;color:#e8ce9b;border-color:#b2986766}.illustrated-table .player.your-seat{background:#e3c17c0a;border-color:#b29b5a38;border-radius:8px}.illustrated-table .player.wolf-ally .avatar{border-color:#c27c78;box-shadow:0 0 0 3px #221e1d,0 0 0 4px #bb767a55}.illustrated-table .player.chosen{border-color:#ebc678aa;background:#af8c4130;border-radius:10px;box-shadow:inset 0 0 25px #d3b56917}.illustrated-table .player.chosen .avatar{border-color:#f1d8a1;box-shadow:0 0 0 4px #bc9c4966,0 0 25px #ddbd6d55}.illustrated-table .player.speaking .avatar{border-color:#b9ebc8;box-shadow:0 0 0 5px #7ecca344,0 0 28px #80cda666}.illustrated-table .player.dead{opacity:.45}.illustrated-table .identity-badge{font-size:9px;padding:2px 5px}.illustrated-table .player.speaking:after{content:'▮ ▮ ▮ 发言中';color:#b5e3c0;font-size:8px;letter-spacing:1px}.layout>div:nth-child(2){background:linear-gradient(#152d25,#0d221c);border-color:#a28d6155;border-radius:10px;padding:19px}.layout>div:nth-child(2)>h2{font-size:16px;color:#e5d4ad;letter-spacing:4px;border-color:#9e865338}.log{height:570px;font-size:13px}.entry{padding:16px 0;border-color:#93ac8d25}.entry .tag{display:flex;align-items:center;gap:8px;font-size:11px;color:#d8c498;margin-bottom:8px}.speech-portrait{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1px solid #b8a57366}.club-transport{background:linear-gradient(90deg,#20372afa,#142c24fa);border-color:#c4ab7255}.club-transport>div:first-child{border-left:2px solid #b09b68;padding-left:14px}.club-transport p{font-size:13px;color:#c3d2c0}.club-transport #speakerLabel{letter-spacing:1px}.scenario-card{background-size:cover!important;background-position:center!important;overflow:hidden;min-height:305px;display:flex;flex-direction:column;justify-content:space-between}.scenario-card:nth-child(1){background-image:linear-gradient(90deg,#102720f5,#1027209c),url('art/roles/villager.webp')!important}.scenario-card:nth-child(2){background-image:linear-gradient(90deg,#243129f5,#1027209c),url('art/roles/seer.webp')!important}.scenario-card:nth-child(3){background-image:linear-gradient(90deg,#38222af5,#241c28a3),url('art/roles/wolf.webp')!important}.scenario-card h3{color:#f3e5c5;font-size:23px;line-height:1.65;text-shadow:0 2px 8px #000}.scenario-card p{color:#c1c9ba}.scenario-card button{background:linear-gradient(#e0c48b,#ac8b52)!important}.persona{background:linear-gradient(140deg,#254035,#142b24);border-color:#b1a37838}.persona img{object-fit:cover;border:2px solid #a18f5a}.role-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.role-guide span{height:140px;display:flex;align-items:end;justify-content:center;padding:13px 5px;color:#ead7b0;text-shadow:0 2px 5px #000;border:1px solid #bda16c66;background-size:cover;background-position:50% 24%;font-size:13px}.role-guide span:nth-child(1){background-image:linear-gradient(transparent,#16291f),url('art/roles/wolf.webp')}.role-guide span:nth-child(2){background-image:linear-gradient(transparent,#16291f),url('art/roles/villager.webp')}.role-guide span:nth-child(3){background-image:linear-gradient(transparent,#16291f),url('art/roles/seer.webp')}.role-guide span:nth-child(4){background-image:linear-gradient(transparent,#16291f),url('art/roles/witch.webp')}.role-guide span:nth-child(5){background-image:linear-gradient(transparent,#16291f),url('art/roles/hunter.webp')}.role-guide span:nth-child(6){background-image:linear-gradient(transparent,#16291f),url('art/roles/guard.webp')}.reveal-book{margin-top:28px;padding:32px;background:linear-gradient(#27392edb,#14281fe8),url('art/table.webp') center/cover;border:1px solid #bea36c77;border-radius:12px;box-shadow:0 15px 45px #0005}.reveal-heading{text-align:center;margin-bottom:28px}.reveal-heading small{color:#bba16a;font-size:9px;letter-spacing:5px}.reveal-heading h2{color:#ead6a6;font-size:28px;line-height:1.5;letter-spacing:2px}.reveal-heading p{color:#a3b8a7;font-size:13px}.reveal-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:15px}.reveal-person{position:relative;overflow:hidden;border:1px solid #8d96794d;border-radius:8px;background:#0e241ce6;text-align:center;display:flex;flex-direction:column;gap:7px;padding-bottom:16px}.reveal-face{width:100%;aspect-ratio:1/1;object-fit:cover;filter:saturate(.8)}.reveal-person.is-wolf{border-color:#b16c7199;background:#312127}.reveal-person .reveal-role{position:absolute;right:6px;top:6px;width:33px;height:48px;object-fit:cover;border:1px solid #d0b78977;border-radius:3px;box-shadow:0 2px 8px #0007}.reveal-person strong{font-size:12px;color:#decda7;padding:0 5px;margin-top:5px}.reveal-person span{font-size:11px;color:#95b29e}.reveal-person.is-wolf span{color:#dda5a6}#game[data-scene=night] .illustrated-table{background-image:linear-gradient(#050e1766,#040d1755),url('art/table.webp')}#game[data-scene=night] .scene-frame{box-shadow:0 0 0 5px #0d1b24c9,0 0 0 6px #8b95bb44,0 15px 45px #0008}#game[data-scene=night] .scene-caption small{color:#a2b8c8}#game[data-scene=night] .illustrated-table>.card{background:linear-gradient(#14272ef0,#0c1e25f5)}#game[data-alignment=wolf][data-scene=night] .illustrated-table>.card{border-color:#a7676b77;background:linear-gradient(#32252df0,#201e28f5)}#game[data-scene=ending] .scene-illustration{filter:sepia(.2)}
@media(max-width:1100px){.layout{grid-template-columns:1fr}.log{height:340px}.layout>.illustrated-table{padding-left:145px;padding-right:145px}.scene-illustration{width:280px}.layout>.illustrated-table>.card{max-width:510px;margin:0 auto!important}.reveal-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:650px){.illustrated-identity{gap:14px;min-height:150px}.illustrated-identity .identity-illustration{width:92px;min-width:92px}.identity-copy{padding:14px 12px 14px 0;font-size:11px;line-height:1.85}.identity-heading{font-size:17px;letter-spacing:1px;margin-bottom:7px}.layout>.illustrated-table{padding:0 90px 20px;min-height:790px;border-radius:8px}.illustrated-table .players{inset:15px 5px;grid-template-columns:78px 78px}.illustrated-table .player{min-height:116px;padding:5px 1px;gap:5px;font-size:10px}.illustrated-table .player .avatar{width:48px;height:48px}.illustrated-table .player .seatnumber{font-size:8px;padding:3px 4px;top:5px;left:0}.illustrated-table .identity-badge{font-size:8px;max-width:80px;white-space:normal;line-height:1.5}.scene-illustration{width:100%;height:285px;margin-top:60px;min-width:0}.scene-frame{inset:0 2px 10px;border-radius:90px 90px 6px 6px}.scene-caption{bottom:13px;gap:8px}.scene-caption small{font-size:6px;letter-spacing:1px}.scene-caption strong{font-size:15px;letter-spacing:1px}.scene-badge{top:20px;font-size:8px;padding:7px 10px;letter-spacing:1px}.layout>.illustrated-table>.card{padding:17px 10px;min-height:300px}.illustrated-table #phase{font-size:17px;letter-spacing:0;line-height:1.7}.illustrated-table #hint{font-size:11px;line-height:1.95}.illustrated-table #actions button{font-size:11px;padding:10px 8px;margin:4px 0;width:100%}.illustrated-table .steptrack{gap:4px;font-size:7px;letter-spacing:0}.scene-illustration[data-kind=table]{height:275px}.reveal-book{padding:20px 14px}.reveal-heading h2{font-size:21px}.reveal-grid{grid-template-columns:repeat(3,1fr);gap:9px}.reveal-person strong{font-size:10px}.reveal-person span{font-size:9px}.reveal-person .reveal-role{width:26px;height:38px}.scenario-card{min-height:300px}.role-guide span{height:120px}}
.layout>div:nth-child(2)>.club-transport{margin:14px 0 8px;padding:12px;display:block;border-radius:6px;background:#1c3529}.layout>div:nth-child(2)>.club-transport>div:first-child{padding-left:9px}.layout>div:nth-child(2)>.club-transport .controls{margin-top:9px;display:flex;gap:5px;flex-wrap:wrap}.layout>div:nth-child(2)>.club-transport button{font-size:10px;padding:7px 9px}.layout>div:nth-child(2)>.club-transport p{font-size:12px;max-height:100px;line-height:1.8}.objective-panel{padding:14px 20px;margin-bottom:16px;max-height:140px;overflow:auto}.objective-panel p{margin:6px 0;font-size:12px}.objective-panel strong{font-size:14px}.illustrated-table .jump-to-speech{background:#244b3a!important;color:#c9dfc8!important;border-color:#79aa8377!important}.layout>div:nth-child(2)>.log{height:430px}@media(max-width:1100px){.illustrated-identity{min-height:125px}.illustrated-identity .identity-illustration{width:100px;min-width:100px}.identity-copy{padding-top:13px;padding-bottom:13px;font-size:12px}.identity-heading{font-size:20px;margin-bottom:4px}.layout>div:nth-child(2)>.log{height:300px}}@media(max-width:650px){.illustrated-identity{min-height:130px}.illustrated-identity .identity-illustration{width:86px;min-width:86px}.identity-copy{font-size:11px}.identity-heading{font-size:17px}.objective-panel{max-height:120px;padding:12px 14px}.objective-panel p{font-size:11px}.layout>div:nth-child(2)>.club-transport p{font-size:12px}}
.scene-illustration{height:395px;margin-bottom:8px}.scene-frame{inset:0 12px 76px}.scene-illustration[data-kind=speaker] .scene-frame{inset:15px 8px 76px}.scene-caption{bottom:9px;left:4px;width:calc(100% - 8px);min-height:56px;box-sizing:border-box;justify-content:center;gap:7px;padding:9px 10px;border:1px solid #ad955a66;border-radius:5px;background:linear-gradient(#17362be8,#10281ff2);box-shadow:0 4px 16px #0004}.scene-caption small{line-height:1.5;font-size:8px}.scene-caption strong{line-height:1.5;font-size:18px;letter-spacing:1px}.scene-illustration[data-kind=table]{height:365px}.scene-illustration[data-kind=table] .scene-frame{inset:15px 5px 86px}@media(max-width:650px){.scene-illustration{height:315px;margin-bottom:9px}.scene-frame{inset:0 2px 69px}.scene-illustration[data-kind=speaker] .scene-frame{inset:15px 2px 69px}.scene-caption{left:0;width:100%;bottom:5px;min-height:55px;padding:8px 5px;gap:5px}.scene-caption small{font-size:6px;letter-spacing:1px}.scene-caption strong{font-size:14px;letter-spacing:0;line-height:1.6}.scene-illustration[data-kind=table]{height:305px}.scene-illustration[data-kind=table] .scene-frame{inset:15px 5px 76px}}
