@import url('https://fonts.googleapis.com/css2?family=Bowlby+One+SC&family=Nunito+Sans:wght@400;600;700;800;900&display=swap');

:root{color:#f7f7f7;background:#080808;font-family:'Nunito Sans','Arial',sans-serif}
body{min-height:100vh;background:#080808;color:#f7f7f7}
.voxel-sky{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:linear-gradient(#050505 0 60%,#181818 60% 72%,#282828 72% 73%,#8a552e 73% 100%)}
.brick-ground{position:absolute;left:0;right:0;bottom:0;height:27%;border-top:9px solid #444;background-color:#8c592f;background-image:repeating-linear-gradient(0deg,transparent 0 36px,#55351f 37px 40px),repeating-linear-gradient(90deg,transparent 0 56px,#593720 57px 60px);box-shadow:inset 0 8px 0 #a16a3c}
.pixel-cloud{position:absolute;top:11%;left:7%;width:105px;height:25px;background:#d5d5d5;box-shadow:18px -19px 0 #ededed,45px -37px 0 #f5f5f5,83px -16px 0 #dedede,110px 4px 0 #c8c8c8,27px 10px 0 #bdbdbd;opacity:.8;filter:drop-shadow(0 10px 0 #777)}
.cloud-two{top:25%;left:auto;right:10%;transform:scale(.75)}
.ruin-one,.ruin-two{position:absolute;bottom:27%;left:9%;width:120px;height:145px;background:linear-gradient(90deg,#c4b68e 0 13%,#e1d5b0 14% 25%,#b5a77e 26% 37%,#ded0a8 38% 49%,#b5a77e 50% 62%,#e0d2aa 63% 75%,#b5a77e 76% 87%,#d8cba3 88% 100%);clip-path:polygon(0 13%,8% 13%,8% 4%,17% 4%,17% 13%,28% 13%,28% 0,39% 0,39% 13%,50% 13%,50% 4%,61% 4%,61% 13%,72% 13%,72% 0,83% 0,83% 13%,92% 13%,92% 4%,100% 4%,100% 100%,0 100%);opacity:.28;filter:drop-shadow(12px 12px 0 #000)}
.ruin-two{left:auto;right:8%;transform:scale(.8);transform-origin:bottom right}
.page-shell{position:relative;z-index:1;max-width:1440px;padding:18px 26px 38px}
.topbar{height:42px}
.brand{color:#fff;font-family:'Bowlby One SC','Arial Black',sans-serif;font-size:19px;letter-spacing:0;text-shadow:2px 2px #000}
.brand-mark{border-radius:5px;border:2px solid #f1f1f1;background:#f2ce00;color:#111;box-shadow:3px 3px 0 #725c00}
.brand-light{color:#e6c52b}
.ad-free{color:#eee;font-size:11px;font-weight:900;letter-spacing:1px}
.dot{background:#38cf83;box-shadow:0 0 0 3px #214c36}
.game-layout{display:grid;grid-template-columns:minmax(205px,260px) minmax(430px,620px) minmax(205px,260px);gap:10px;align-items:start;justify-content:center;margin:38px auto 0;max-width:1180px}
.vip-panel,.roller-card,.history-section,.vip-login-section{background:rgba(10,10,10,.88);border:3px solid #777;border-radius:12px;box-shadow:0 7px 0 #171717,0 13px 26px #0008;backdrop-filter:blur(2px)}
.vip-panel{padding:13px 11px 15px;min-height:385px}
.vip-panel h2,.vip-caption{text-align:center}
.vip-panel h2{font:20px 'Bowlby One SC','Arial Black',sans-serif;margin:0;color:#fff;text-shadow:2px 2px #000;letter-spacing:.5px}
.vip-caption{margin:3px 0 11px;color:#d4d4d4;font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase}
.vip-list{display:flex;flex-direction:column;gap:7px}
.vip-empty{margin:0;padding:15px 9px;border:1px dashed #777;border-radius:7px;color:#ccc;text-align:center;font-size:11px;font-weight:700;line-height:1.5}
.vip-card{display:flex;align-items:center;gap:9px;width:100%;min-height:56px;padding:6px 7px;border:1px solid #777;border-radius:9px;background:rgba(66,66,66,.82);color:#fff;text-align:left;cursor:pointer;transition:transform .12s,border-color .12s,background .12s}
.vip-card:hover{transform:translateX(2px);border-color:#f2d500;background:#555}
.vip-avatar{width:36px;height:36px;flex-shrink:0;display:grid;place-items:center;border:2px solid #eee;border-radius:50%;color:#fff;font:900 11px 'Nunito Sans',sans-serif;text-shadow:1px 1px #111;background:#345c7c}
.avatar-blue{background:linear-gradient(135deg,#3178a8,#142f5d)}.avatar-gold{background:linear-gradient(135deg,#dba72f,#6d3e18)}.avatar-violet{background:linear-gradient(135deg,#a34cba,#432359)}.avatar-green{background:linear-gradient(135deg,#53a777,#174d38)}.avatar-red{background:linear-gradient(135deg,#df5656,#672222)}
.vip-copy{display:flex;min-width:0;flex:1;flex-direction:column;line-height:1.1}
.vip-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:15px 'Bowlby One SC','Arial Black',sans-serif;letter-spacing:.1px}
.vip-copy small{margin-top:4px;color:#e4e4e4;font-size:10px;font-weight:700}
.vip-tag{padding:3px 5px;border-radius:4px;background:#858585;color:#fff;font-size:8px;font-weight:900;letter-spacing:.5px}
.roller-card{width:100%;max-width:none;padding:19px 21px 17px;border-radius:12px}
.game-title{text-align:center;margin:0 0 13px}
.game-title p{margin:0;color:#e4c800;font-size:9px;font-weight:900;letter-spacing:2px}
.game-title h1{margin:0;color:#fff;font:clamp(26px,3vw,35px)/1.08 'Bowlby One SC','Arial Black',sans-serif;letter-spacing:1px;text-shadow:3px 3px #444}
.game-title span{display:block;margin-top:4px;color:#fff;font:15px 'Bowlby One SC','Arial Black',sans-serif;letter-spacing:.7px}
.card-topline{display:none}
.verify-id-strip{margin:0 auto 8px;padding:8px 9px;background:#292929;border:1px solid #555;border-radius:7px}
.verify-id-strip .section-label{color:#e6d345;letter-spacing:.9px}
.verify-id-strip code{color:#fff;font:700 11px 'Nunito Sans',sans-serif}
.verify-id-strip a,.copy-room{color:#ffe100;font-size:10px;font-weight:900}
.dice-stage{min-height:124px;padding:17px 4px;gap:9px}
.die{position:relative;display:block;width:clamp(56px,7vw,76px);height:clamp(56px,7vw,76px);border:6px solid #fff;border-radius:13px;background:var(--die);box-shadow:inset 0 -4px 0 #0003,0 4px 0 #555,0 8px 13px #0008}
.die::after{position:absolute;top:50%;left:50%;width:12px;height:12px;content:"";transform:translate(-50%,-50%);border-radius:50%;background:#fff;box-shadow:0 1px 2px #0007}
.die.landing{animation:die-land .28s cubic-bezier(.2,.8,.25,1) both}
.roll-summary{min-height:31px;border-top:1px dashed #777;padding-top:9px;color:#fff;font-size:12px;font-weight:800}
.controls{gap:8px;padding-top:12px}
.count-control{color:#fff;font-size:10px;font-weight:900;letter-spacing:.8px}
.count-control select{height:39px;border:2px solid #ddd;border-radius:4px;background:#fff;color:#111;font:900 13px 'Nunito Sans',sans-serif}
.roll-button{height:44px;min-width:145px;border:2px solid #fff;border-radius:4px;background:#ffdc00;color:#171717;font:900 15px 'Bowlby One SC','Arial Black',sans-serif;box-shadow:0 4px 0 #987d00;letter-spacing:.5px}
.roll-button:hover{background:#ffe94b;color:#111;transform:translateY(-1px)}
.roll-button:active{transform:translateY(2px);box-shadow:0 1px 0 #987d00}
.roll-button:disabled{color:#353535}
.roll-button span{font-family:Arial,sans-serif}
.sound-toggle{height:39px;width:39px;border:2px solid #ddd;border-radius:4px;background:#3b3b3b;color:#fff}
.keyboard-hint{margin:12px 0 0;color:#bbb;font-size:9px;font-weight:800;letter-spacing:.5px}
kbd{border:1px solid #aaa;border-radius:3px;background:#4b4b4b;color:#fff}
.history-section{max-width:1180px;margin:31px auto 0;padding:16px 18px}
.history-heading{align-items:center;margin-bottom:12px}
.history-heading .eyebrow{margin:0 0 4px;color:#e8d000}
.history-heading h2{color:#fff;font:23px 'Bowlby One SC','Arial Black',sans-serif;letter-spacing:.5px}
.history-count{border:1px solid #aaa;border-radius:4px;background:#494949;color:#fff;font-weight:900}
.stats-panel{margin-bottom:13px;padding:10px 12px;border:1px solid #656565;border-radius:8px;background:rgba(69,69,69,.88)}
.stats-panel>strong{display:block;margin-bottom:8px;color:#fff;font:13px 'Bowlby One SC','Arial Black',sans-serif;letter-spacing:.4px}
.color-stats{display:flex;flex-wrap:wrap;gap:6px}
.stat-chip{display:flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid #ddd;border-radius:4px;background:#fff;color:#262626;font-size:11px}
.stat-chip i{width:10px;height:10px;background:var(--swatch);border-radius:1px}
.stat-chip strong{color:#333}
.history-empty{border:1px dashed #777;border-radius:5px;color:#ccc}
.roll-history{border-top:0}
.history-item{justify-content:flex-start;gap:12px;padding:12px 8px;border-bottom:1px dashed #8a8a8a}
.history-main{display:flex;align-items:center;gap:12px;min-width:0;flex:1}
.history-roll-title{width:126px;flex-shrink:0;color:#fff;font:13px 'Bowlby One SC','Arial Black',sans-serif}
.history-colors{gap:5px;margin:0;flex-wrap:wrap}
.history-color{width:34px;height:34px;border:3px solid #fff;border-radius:5px;box-shadow:inset 0 -3px 0 #0003,0 2px 0 #555}
.history-time{max-width:170px;color:#c7c7c7;font-size:10px}
.history-count,.vip-tag,.copy-room,.vip-login-button{letter-spacing:.5px}
.vip-login-section{display:flex;flex-direction:column;align-items:center;gap:9px;max-width:600px;margin:30px auto 0;padding:19px;text-align:center}
.vip-login-section>p{margin:0;color:#e6d000;font-size:10px;font-weight:900;letter-spacing:1.5px}
.vip-login-button{padding:12px 22px;border:2px solid #fff;border-radius:4px;background:#ffdc00;color:#171717;font:17px 'Bowlby One SC','Arial Black',sans-serif;box-shadow:0 4px 0 #987d00;cursor:pointer}
.vip-login-button:hover{background:#ffe94b;transform:translateY(-1px)}
.vip-login-section>span{color:#ccc;font-size:11px}
.color-key{max-width:600px;margin:27px auto 0;padding:14px;border:2px solid #666;border-radius:8px;background:rgba(0,0,0,.75)}
.color-key>.section-label{color:#eee;text-align:center}
.color-list{gap:16px}
.color-list span{color:#eee;font-weight:800}
.swatch{width:11px;height:11px;border-radius:2px}
footer{color:#aaa;font-size:10px;font-weight:800;letter-spacing:.5px}
.vip-dialog{position:fixed;max-width:430px;width:calc(100% - 28px);padding:27px;border:3px solid #818181;border-radius:9px;background:#151515;color:#fff;box-shadow:0 12px 45px #000b}
.vip-dialog::backdrop{background:#000b;backdrop-filter:blur(3px)}
.vip-dialog .eyebrow{color:#ebd300}
.vip-dialog h2{margin:0;color:#fff;font:25px 'Bowlby One SC','Arial Black',sans-serif}
.vip-dialog>p:not(.eyebrow){color:#ccc;font-size:13px;line-height:1.6}
.vip-dialog .roll-button{margin-top:5px}
.dialog-close{position:absolute;top:9px;right:12px;border:0;background:none;color:#fff;font-size:25px;cursor:pointer}
.vip-dialog [hidden],.active-vip-banner[hidden]{display:none!important}
.vip-dialog-form{display:flex;flex-direction:column;gap:8px;margin-top:17px}
.vip-dialog-form label{color:#eee;font-size:10px;font-weight:900;letter-spacing:.7px}
.vip-dialog-form input,.vip-dialog-form select{height:43px;padding:0 11px;border:2px solid #bbb;border-radius:4px;background:#fff;color:#181818;font:700 13px 'Nunito Sans',sans-serif}
.vip-dialog-form .roll-button{width:100%;margin-top:6px}
.dialog-status{padding:10px;border:1px solid #777;border-radius:5px;background:#333;color:#fff;font-size:12px;line-height:1.5}
.active-vip-banner{display:flex;justify-content:center;align-items:center;gap:9px;margin:0 auto 10px;padding:8px;border:2px solid #ffe000;border-radius:5px;background:#494000;color:#fff;font-size:11px;font-weight:900;text-align:center}
.active-vip-banner a{color:#ffea32;text-decoration:underline}
@media(max-width:980px){.page-shell{padding-inline:18px}.game-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:700px;gap:12px}.roller-card{grid-column:1/-1;grid-row:1;max-width:620px;justify-self:center}.vip-panel{min-height:0}.history-section{max-width:700px}}
@media(max-width:600px){.page-shell{padding:13px 12px 30px}.game-layout{grid-template-columns:1fr;margin-top:24px}.roller-card{grid-column:1;grid-row:1;padding:16px 13px}.vip-panel{padding:12px}.vip-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}.vip-card{min-height:58px;padding:5px}.vip-avatar{width:30px;height:30px}.vip-copy strong{font-size:12px}.vip-copy small{font-size:8px}.vip-tag{font-size:7px}.history-section{margin-top:23px;padding:12px 10px}.history-main{gap:7px}.history-roll-title{width:94px;font-size:11px}.history-color{width:27px;height:27px;border-width:3px}.history-time{max-width:78px;font-size:9px}.verify-id-strip{flex-wrap:wrap}.verify-id-strip>span{flex:1 1 100%}.history-item{padding:10px 3px}.history-heading h2{font-size:19px}.stats-panel{padding:8px}.vip-login-section{margin-top:23px}.intro{display:none}}
