/* 罗斯轮盘《最后一杯》舞台(原型 games/roulette/style.css, 选择器限定在 .rv-stage 里) */
.rv-stage *{box-sizing:border-box}.rv-stage{margin:0;background:#141113;color:#eee4d6;font:14px/1.6 "PingFang SC","Microsoft YaHei",sans-serif}.rv-stage button,.rv-stage a{touch-action:manipulation}.rv-stage button{font:inherit;cursor:pointer}.rv-stage a{color:inherit;text-decoration:none}.rv-stage button:focus-visible,.rv-stage a:focus-visible{outline:2px solid #eac48b;outline-offset:4px}.rv-stage [hidden]{display:none!important}.rv-stage{height:100%;min-height:620px;position:relative;overflow:hidden}.rv-stage #scene{position:absolute;inset:0}.rv-stage canvas{display:block;width:100%;height:100%;touch-action:none}.rv-stage .vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#080a1080,transparent 22%,transparent 62%,#0d0c11f5),radial-gradient(ellipse,transparent 45%,#08091090)}.rv-stage header{position:absolute;top:0;left:0;right:0;z-index:2;padding:23px 34px;display:flex;align-items:center;justify-content:space-between;gap:20px}.rv-stage .back{font-size:12px;color:#d1c0ab}.rv-stage .brand{font-family:Georgia,"Songti SC",SimSun,serif;font-size:25px;letter-spacing:5px}.rv-stage .brand>span{color:#e6b778;font-size:22px}.rv-stage .brand small{display:block;font:9px Arial,sans-serif;letter-spacing:4px;text-align:center;color:#b59773}.rv-stage .top-actions{display:flex;gap:8px}.rv-stage .top-actions button{border:1px solid #cab08d35;background:#17151ac9;color:#d8c4a8;padding:7px 12px;border-radius:6px;font-size:11px}.rv-stage .scene-label{position:absolute;top:107px;left:34px;display:flex;align-items:center;gap:10px;color:#c8b49a;font-size:11px;letter-spacing:1px}.rv-stage .live-dot{width:5px;height:5px;background:#d69b59;border-radius:50%;box-shadow:0 0 10px #f5c477}.rv-stage .scene-label i{font-style:normal;opacity:.3}.rv-stage .round-top{position:absolute;right:34px;top:106px;text-align:right}.rv-stage .round-top>span{font-size:12px;color:#ead1a3;display:block}.rv-stage .round-top small{font-size:10px;color:#a48b71}.rv-stage .character-label{position:absolute;top:33%;max-width:190px;pointer-events:none;text-shadow:0 2px 8px #000}.rv-stage .character-label.vera{left:5%}.rv-stage .character-label.mo{right:5%;text-align:right}.rv-stage .character-label span{font-size:11px;letter-spacing:2px;color:#e6b77c}.rv-stage .character-label strong{display:block;font-size:14px;font-weight:500;margin-top:7px}.rv-stage .character-label small{font-size:10px;color:#b6a28c;display:block;margin-top:4px}.rv-stage .console{position:absolute;left:34px;right:34px;bottom:52px;display:grid;grid-template-columns:1fr 310px;align-items:center;gap:50px;padding:23px 27px;border:1px solid #b99b633b;border-radius:12px;background:linear-gradient(120deg,#191619df,#191719ed);backdrop-filter:blur(15px);box-shadow:0 12px 40px #0005}.rv-stage .eyebrow{font-size:9px;color:#c99a60;letter-spacing:2.5px}.rv-stage #status-title{font-size:26px;font-family:"Songti SC",SimSun,serif;font-weight:600;line-height:1.45;margin:8px 0 7px}.rv-stage .console p{font-size:12px;color:#bca78e;margin:0;max-width:680px}.rv-stage .seats{display:flex;justify-content:space-between;margin-bottom:12px}.rv-stage .seat{font-size:11px;display:flex;align-items:center;gap:7px;color:#8e8173}.rv-stage .seat i{width:5px;height:5px;border-radius:50%;background:#635a4f}.rv-stage .seat.active{color:#f5d398}.rv-stage .seat.active i{background:#e9ba74;box-shadow:0 0 8px #e9ba7477}.rv-stage .seat.out{color:#a8574e}.rv-stage .seat.out i{background:#a8574e}.rv-stage .primary{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;border:1px solid #f0cb90;border-radius:6px;padding:13px 18px;background:linear-gradient(110deg,#eaca95,#c78e54);color:#2e2017;font-weight:700;font-size:14px;transition:filter .2s}.rv-stage .primary:hover{filter:brightness(1.1)}.rv-stage .primary:disabled{background:#4a3b2b;color:#a69377;border-color:#8a6f4944;cursor:default}.rv-stage .console-right>small{display:block;text-align:center;margin-top:8px;font-size:9px;color:#8e8174}.rv-stage .scene-bottom{position:absolute;bottom:19px;left:35px;right:35px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:#827467}.rv-stage #impact{position:absolute;inset:0;background:#901e1e;opacity:0;pointer-events:none;transition:opacity .18s}.rv-stage #impact.hit{opacity:.45}.rv-stage #loading,.rv-stage #error{position:absolute;inset:0;background:radial-gradient(ellipse,#33251d,#111015);z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.rv-stage .loading-mark{font-size:45px;color:#e6b57b;animation:pulse 1.5s infinite}.rv-stage #loading h2,.rv-stage #error h2{font-size:23px;font-family:SimSun,serif;font-weight:400}.rv-stage #loading p,.rv-stage #error p{color:#a38e77;font-size:12px;max-width:500px;padding:0 25px}.rv-stage #error a{color:#e6b57b}.rv-stage dialog{max-width:510px;width:90%;max-height:85dvh;overflow:auto;background:#201b1c;color:#ecddc5;border:1px solid #b7945a;border-radius:12px;padding:29px}.rv-stage dialog::backdrop{background:#080810bb;backdrop-filter:blur(7px)}.rv-stage dialog h2{font-size:24px;font-family:SimSun,serif;margin:10px 0 20px}.rv-stage dialog p{font-size:14px;line-height:1.9;color:#c1ac91}.rv-stage dialog small{font-size:11px;color:#95836e;line-height:1.8}.rv-stage .close{float:right;border:0;background:transparent;color:#b8a086;font-size:24px;padding:0 5px}@keyframes pulse{50%{opacity:.4;transform:scale(.9)}}@media(max-width:1000px){.rv-stage .character-label{top:27%;max-width:145px}.rv-stage .character-label.vera{left:3%}.rv-stage .character-label.mo{right:3%}.rv-stage .character-label strong{font-size:12px}.rv-stage .character-label small{display:none}.rv-stage .console{gap:25px;grid-template-columns:1fr 270px}.rv-stage .brand{font-size:21px}.rv-stage .back{font-size:10px}}@media(max-width:640px){.rv-stage{min-height:700px}.rv-stage header{padding:18px 18px;flex-wrap:wrap;gap:10px}.rv-stage .brand{font-size:19px;letter-spacing:3px}.rv-stage .brand small{font-size:8px;letter-spacing:2px}.rv-stage .back{font-size:10px}.rv-stage .top-actions{gap:4px}.rv-stage .top-actions button{font-size:10px;padding:6px 8px}.rv-stage .scene-label{top:94px;left:18px;font-size:9px;gap:6px}.rv-stage .round-top{top:123px;right:18px}.rv-stage .round-top small{display:none}.rv-stage .character-label{top:29%;max-width:100px}.rv-stage .character-label.vera{left:15px}.rv-stage .character-label.mo{right:15px}.rv-stage .character-label strong{font-size:10px}.rv-stage .character-label span{font-size:9px}.rv-stage .console{left:15px;right:15px;bottom:42px;grid-template-columns:1fr;gap:15px;padding:18px}.rv-stage .console #status-title{font-size:22px}.rv-stage .console p{font-size:11px}.rv-stage .console-right>small{display:none}.rv-stage .seats{margin-bottom:9px}.rv-stage .primary{padding:12px 16px}.rv-stage .scene-bottom{left:18px;right:18px;bottom:15px;font-size:8px;gap:15px}.rv-stage .scene-bottom span:first-child{max-width:70px}.rv-stage .scene-label i:nth-last-child(2),.rv-stage .scene-label{letter-spacing:0}}@media(prefers-reduced-motion:reduce){.rv-stage *{animation:none!important;transition:none!important}}

/* 站点里的舞台: 外框 .rv-frame 页面内 16:9 / 全屏时盖满窗口(account.js 加 html.game-full); 里面的 .rv-stage 保留原型的最小高度,
   矮屏(横屏手机)在外框里上下滚动, 跟原型整页滚动一样 */
.rv-frame{position:relative;width:min(100%,calc((100vh - 100px)*16/9));aspect-ratio:16/9;margin:0 auto;border-radius:18px;overflow-x:hidden;overflow-y:auto;background:#141113}
html.game-full,html.game-full body{overflow:hidden}
html.game-full .rv-frame{position:fixed;inset:0;z-index:50;width:100vw;height:100vh;height:100dvh;aspect-ratio:auto;border-radius:0}
html.game-full .chat-fab{display:none}
.rv-stage [data-full-toggle]{display:inline-flex;align-items:center}
