.xp-snow-client { position:absolute; left:4px; top:30px; width:592px; height:370px; display:flex; flex-direction:column; background:#ece9d8; font:11px Tahoma,SimSun,"Songti SC",sans-serif; color:#111; overflow:hidden; }
.xp-snow-toolbar { display:flex; align-items:center; gap:2px; height:26px; flex-shrink:0; padding:2px 4px; border-bottom:1px solid #aca899; box-sizing:border-box; }
.xp-snow-toolbar button { font:inherit; color:inherit; border:1px solid transparent; background:transparent; height:22px; padding:2px 8px; border-radius:0; }
.xp-snow-toolbar button:hover,.xp-snow-toolbar button:focus-visible { border-color:#fff #aca899 #aca899 #fff; background:#f6f4eb; outline:none; }
.xp-snow-toolbar button:active,.xp-snow-toolbar button[aria-pressed="true"] { border-color:#aca899 #fff #fff #aca899; background:#dedbcd; }
.xp-snow-toolbar span { flex:1; text-align:right; color:#666; padding-right:4px; }
.xp-snow-viewport { position:relative; flex:1; min-height:0; display:flex; align-items:center; justify-content:center; background:#080a0c; overflow:hidden; }
.xp-snow-canvas,.xp-snow-photo { display:block; position:absolute; width:100%; height:100%; object-fit:contain; outline:none; touch-action:none; image-rendering:auto; }
.xp-snow-photo[hidden] { display:none; }
.xp-snow-hint { position:absolute; bottom:13px; left:0; right:0; text-align:center; color:#a7aeb4; font-size:11px; pointer-events:none; text-shadow:0 1px 2px #000; transition:opacity .22s; }
.xp-snow-client.is-playing .xp-snow-hint { opacity:0; }
.xp-snow-status { display:flex; align-items:center; height:20px; flex-shrink:0; padding:0 6px; border-top:1px solid #aca899; box-sizing:border-box; color:#333; }
.xp-snow-status span:first-child { flex:1; }
.xp-snow-status span:last-child { border-left:1px solid #aca899; padding-left:9px; color:#555; }
.xp-snow-error { position:absolute; padding:20px; text-align:center; color:#c9cdd0; line-height:1.7; }
.xp-snow-error button { display:block; margin:12px auto; padding:4px 12px; }
.xp-snow-help { position:absolute; inset:0; background:rgba(8,11,14,.92); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; color:#c2c6c9; z-index:3; line-height:1.7; text-align:center; }
.xp-snow-help[hidden] { display:none; }
.xp-snow-help button { font:inherit; padding:3px 16px; }
.xp-window.is-snow-fullscreen { left:0!important; top:0!important; width:800px!important; height:600px!important; z-index:99999!important; }
.is-snow-fullscreen > .xp-window-shell,.is-snow-fullscreen > .xp-window-title,.is-snow-fullscreen > .xp-window-title-text,.is-snow-fullscreen > .xp-window-button { display:none; }
.is-snow-fullscreen .xp-snow-client { top:0; left:0; width:800px!important; height:600px!important; }
.is-snow-fullscreen .xp-snow-viewport { flex:none; position:absolute; inset:0; }
.is-snow-fullscreen .xp-snow-toolbar { position:absolute; left:8px; top:8px; z-index:4; background:#ece9d8; border:1px solid #aca899; box-shadow:1px 1px 2px #0006; }
.is-snow-fullscreen .xp-snow-toolbar span,.is-snow-fullscreen .xp-snow-status { display:none; }
.is-snow-fullscreen .is-playing .xp-snow-toolbar { visibility:hidden; }
.xp-stage.snow-pointer-locked .xp-synthetic-cursor { visibility:hidden!important; }
.xp-snow-touch { position:absolute; bottom:16px; left:16px; display:none; grid-template-columns:repeat(3,38px); grid-template-rows:repeat(2,34px); gap:3px; }
.xp-snow-touch button { background:#24292b99; color:#bbb; border:1px solid #62676a55; font:16px sans-serif; touch-action:none; }
.xp-snow-touch button:first-child { grid-column:2; }
.xp-snow-touch button:nth-child(2) { grid-column:1; }
@media (pointer:coarse) { .xp-snow-touch { display:grid; } .xp-snow-hint { bottom:100px; } }
