:root { color-scheme: dark; font-family: Arial, Helvetica, sans-serif; --gold: #ffd34d; --pink: #f757a6; --blue: #338bff; } * { box-sizing: border-box; } html, body { min-height: 100%; margin: 0; } body { background: #15151c; color: #fff; display: grid; place-items: center; } button { font: inherit; } .phone { width: min(100vw, 430px); min-height: 100vh; background: #0e1026; overflow: hidden; } .wheel-page { min-height: 100vh; padding: 14px 16px 22px; background-position: top center; background-repeat: no-repeat; background-size: 100% auto; transition: background-image 160ms ease; } .topbar { display: flex; align-items: center; justify-content: space-between; padding-top: 6px; } .room-name { font-size: 13px; font-weight: 700; text-shadow: 0 2px 4px rgba(0, 0, 0, .4); } .coin-line, .balance { display: inline-flex; align-items: center; gap: 6px; color: var(--gold); font-weight: 700; } .coin-dot { width: 15px; height: 15px; border-radius: 50%; background: radial-gradient(circle at 32% 28%, #fff4a5, #e6a90f 52%, #8f5a00); box-shadow: 0 0 0 1px rgba(255, 255, 255, .35) inset; } .icon-button { width: 34px; height: 34px; border: 1px solid rgba(255, 255, 255, .45); border-radius: 50%; background: rgba(0, 0, 0, .28); color: #fff; font-weight: 800; } h1 { margin: 132px 0 10px; color: #fff; font-size: 32px; line-height: 1; text-align: center; text-shadow: 0 3px 0 #2072ff, 0 0 10px rgba(255, 255, 255, .9), 0 0 18px rgba(72, 186, 255, .75); } .mode-advanced h1 { color: #ffc64c; text-shadow: 0 3px 0 #1d0e00, 0 0 12px rgba(255, 210, 99, .9), 0 0 28px rgba(255, 125, 19, .75); } .tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0 auto 10px; } .tabs button { min-height: 38px; border: 2px solid rgba(255, 255, 255, .65); border-radius: 7px; background: linear-gradient(#f0d0ee, #aa77a7); color: rgba(255, 255, 255, .92); box-shadow: 0 4px 9px rgba(0, 0, 0, .28); } .tabs button.active { background: linear-gradient(#fff4bd, #ff8e3f); color: #8e3900; border-color: #ffe681; } .ticker { height: 28px; overflow: hidden; border: 1px solid rgba(255, 232, 154, .75); border-radius: 14px; background: rgba(65, 22, 95, .7); color: #fff; white-space: nowrap; } #tickerTrack { display: inline-flex; gap: 26px; align-items: center; min-width: max-content; height: 100%; padding-left: 100%; animation: ticker 24s linear infinite; font-size: 13px; } @keyframes ticker { to { transform: translateX(-100%); } } .stage { position: relative; margin: 14px auto 10px; min-height: 344px; } .grid-board { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; width: 100%; padding: 16px; border-radius: 20px; background: rgba(17, 68, 164, .82); border: 4px solid rgba(255, 235, 120, .85); box-shadow: 0 10px 18px rgba(0, 0, 0, .35), 0 0 0 7px rgba(98, 197, 255, .35) inset; } .mode-advanced .grid-board { background: rgba(20, 13, 9, .9); border-color: #ddba4d; box-shadow: 0 10px 18px rgba(0, 0, 0, .45), 0 0 0 7px rgba(255, 195, 54, .2) inset; } .prize-card { position: relative; min-height: 95px; padding: 8px 4px 6px; border: 2px solid rgba(255, 255, 255, .58); border-radius: 9px; background: linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.05)); text-align: center; } .prize-card.active { outline: 4px solid #fff05d; box-shadow: 0 0 18px #fff05d; } .prize-card img { width: 58px; height: 58px; object-fit: contain; } .prize-card strong { display: block; font-size: 11px; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .price { display: inline-flex; align-items: center; justify-content: center; gap: 3px; color: var(--gold); font-size: 12px; font-weight: 800; } .go-button { display: grid; place-items: center; min-height: 95px; border: 0; border-radius: 50%; background: radial-gradient(circle at 50% 42%, #fffdf2, #ffbb34 48%, #ff593f 76%); color: #fff; font-size: 30px; font-weight: 900; text-shadow: 0 2px 3px rgba(150, 33, 0, .8); box-shadow: 0 0 0 6px rgba(255, 255, 255, .72) inset, 0 8px 16px rgba(0,0,0,.3); } .wheel-wrap { position: relative; width: 330px; height: 330px; margin: 0 auto; } .wheel-disc { position: absolute; inset: 0; border-radius: 50%; background-image: url("../assets/external/yumi-static/other/lucky_box_tow_turntable.png"); background-position: center; background-repeat: no-repeat; background-size: contain; transition: transform 2.2s cubic-bezier(.12,.75,.17,1); } .wheel-item { position: absolute; left: 50%; top: 50%; width: 66px; height: 80px; margin: -40px 0 0 -33px; transform: rotate(var(--angle)) translateY(-110px) rotate(calc(-1 * var(--angle))); text-align: center; font-size: 11px; } .wheel-item img { width: 48px; height: 48px; object-fit: contain; } .wheel-go { position: absolute; left: 50%; top: 50%; width: 86px; height: 86px; transform: translate(-50%, -50%); border: 0; border-radius: 50%; background: radial-gradient(circle, #fff7bd, #ffc31b 52%, #f2527a 83%); color: #f25688; font-size: 25px; font-weight: 900; box-shadow: 0 0 0 6px rgba(255,255,255,.68) inset, 0 5px 12px rgba(0,0,0,.28); } .pointer { position: absolute; left: 50%; top: 8px; width: 58px; transform: translateX(-50%); pointer-events: none; } .buy-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; } .buy-row button { min-height: 62px; border: 2px solid rgba(255, 255, 255, .55); border-radius: 9px; background: linear-gradient(#ff9f61, #ef5145); color: #fff; font-weight: 800; box-shadow: 0 7px 14px rgba(0,0,0,.28); } .buy-row button.active { background: linear-gradient(#6fb9ff, #2869e6); } .balance { justify-content: center; width: min(74%, 290px); height: 48px; margin: 12px auto 0; border-radius: 10px; background: linear-gradient(#4cb1ff, #176cdc); color: #ffed57; box-shadow: 0 5px 16px rgba(0, 0, 0, .28); } .modal { width: min(92vw, 380px); border: 0; border-radius: 16px; padding: 24px 18px 18px; background: linear-gradient(180deg, #4220a5, #1c1247); color: #fff; box-shadow: 0 24px 60px rgba(0,0,0,.55); } .modal::backdrop { background: rgba(0,0,0,.68); } .modal h2 { margin: 0 0 16px; text-align: center; color: #ffe176; } .close { position: absolute; top: 10px; right: 10px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: rgba(255,255,255,.15); color: #fff; } .reward-list, .history-list { display: grid; gap: 10px; } .reward-row, .history-row { display: grid; grid-template-columns: 56px 1fr auto; align-items: center; gap: 10px; min-height: 66px; padding: 8px; border-radius: 9px; background: rgba(255,255,255,.1); } .reward-row img, .history-row img { width: 50px; height: 50px; object-fit: contain; } .primary { width: 100%; min-height: 44px; margin-top: 14px; border: 0; border-radius: 9px; background: linear-gradient(#ffe46f, #ff9137); color: #7b3200; font-weight: 900; } @media (min-width: 700px) { .phone { min-height: 844px; border-radius: 18px; box-shadow: 0 22px 80px rgba(0, 0, 0, .55); } body { padding: 28px; } }