/* Daily rewards, using the Hall of Heroes palette and existing game art. */
.luck-widget{--luck-line:rgba(204,170,104,.25);color:#e5e5dc}
.luck-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 0 22px;border-bottom:1px solid var(--luck-line)}
.luck-toolbar p{margin:0;font-size:14px;color:#b9c4bd}.luck-reset{text-align:right;flex-shrink:0}.luck-reset strong{color:#e4c88b;font-weight:500}.luck-reset span{display:block;font-size:12px;margin-top:4px;color:#9ca9a1}
.luck-char{display:flex;align-items:center;gap:16px}.luck-char label{font-size:14px;color:#b9c4bd}.luck-char select{max-width:100%;border:1px solid #665c40;border-radius:4px;background:#151e1a;color:#f3ead6;padding:11px 36px 11px 14px;font:14px var(--f-text)}
.luck{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:28px}
.luck-box{min-width:0;position:relative;background:none;border:0;box-shadow:none;text-shadow:0 2px 12px #000}
.luck-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:26px 28px 0}.luck-card-head h3{font:32px/1.15 var(--f-carve);color:#f1e8d6;margin:0}.luck-card-head p{font-size:13px;color:#aebbb1;margin:7px 0 0}.luck-status{font-size:11px;color:#d4be8c;white-space:nowrap;border:1px solid var(--luck-line);border-radius:3px;padding:5px 8px;margin-top:4px}
.luck-card-head{flex-direction:column;align-items:center;text-align:center;gap:8px}.luck-status{border:0;padding:0;margin:0;color:#b8b6a5}.luck-stage{height:490px;display:grid;place-items:center;position:relative}
.luck-object{appearance:none;display:grid;place-items:center;width:100%;height:450px;padding:0;border:0;border-radius:50%;background:none;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.luck-object:disabled{cursor:default}.luck-object:not(:disabled):hover .wheel-wrap{filter:brightness(1.12)}.luck-object:not(:disabled):hover .chest-art{filter:drop-shadow(0 15px 22px #c69c4e55)}
.wheel-wrap{display:block;width:420px;max-width:90%;aspect-ratio:1;position:relative;border-radius:50%;background:#131b16;border:5px solid #8d7447;box-shadow:0 0 0 2px #332d20,0 0 0 4px #c4a76a,0 12px 32px #000a,inset 0 0 0 2px #ead2a3;padding:3px;transition:filter .25s}
#wheel{width:100%;height:100%;display:block;transition:transform 5.2s cubic-bezier(.12,.68,.16,1)}
.wheel-amount{fill:#f6e2b3;font:600 9px var(--f-text);text-anchor:middle;paint-order:stroke;stroke:#14201b;stroke-width:.7px}.wheel-unit{fill:#bdbb9e;font:7px var(--f-text);text-anchor:middle}
.luck-pointer{position:absolute;left:50%;top:-15px;transform:translateX(-50%);width:26px;height:36px;z-index:3;background:linear-gradient(90deg,#ad8542,#ffedb2 47%,#c49e53 52%,#e2c47c);clip-path:polygon(0 0,100% 0,50% 100%)}
.wheel-hub{position:absolute;inset:38%;display:grid;place-items:center;border-radius:50%;background:radial-gradient(#344231,#101b15);border:2px solid #bca16c;box-shadow:0 3px 12px #000b;pointer-events:none}.wheel-hub img{width:86%;height:auto;filter:drop-shadow(0 2px 3px #000)}
.chest-scene{position:relative;width:320px;max-width:95%;height:310px;display:grid;place-items:center;isolation:isolate}.chest-art{width:260px;max-width:85%;height:auto;position:relative;z-index:2;filter:drop-shadow(0 22px 12px #0009);transition:transform .7s,filter .7s,opacity .7s}.chest-aura{position:absolute;inset:18px 2px;background:radial-gradient(ellipse,#b9a25630,#40ab7a12 45%,transparent 70%);transition:filter .8s,transform .8s}.chest-rune{position:absolute;bottom:18px;width:270px;max-width:90%;height:90px;border:1px solid #bdae6755;border-radius:50%;box-shadow:0 0 25px #73b99216,inset 0 0 20px #cab46c15}.chest-rune:after{content:'';position:absolute;inset:8px;border:1px dashed #bdae6733;border-radius:50%}.chest-reward{position:absolute;z-index:3;width:100px;height:100px;opacity:0;transform:translateY(30px) scale(.6);transition:opacity .7s,transform .7s;filter:drop-shadow(0 0 18px #efd78a)}
.chest-scene:not(.is-opening):not(.is-open) .chest-art{animation:luck-float 4.8s ease-in-out infinite}.chest-scene:not(.is-opening):not(.is-open) .chest-rune{animation:luck-shadow 4.8s ease-in-out infinite}
.chest-scene{width:440px;height:430px}.chest-art{width:360px;transition:transform .5s,filter .5s,opacity .4s}.chest-rune{width:350px;bottom:14px}.chest-open-art{position:absolute;width:375px;max-width:92%;height:auto;bottom:25px;z-index:2;opacity:0;transform:translateY(10px) scale(.94);transition:opacity .45s,transform .7s;filter:drop-shadow(0 20px 15px #0008)}
.chest-scene.is-opening .chest-art{animation:luck-shake .3s ease-in-out 4}.chest-scene.is-open .chest-art{transform:translateY(8px) scale(.94);opacity:0}.chest-scene.is-open .chest-open-art{opacity:1;transform:translateY(0) scale(1)}.chest-scene.is-open .chest-aura{filter:brightness(2.5);transform:scale(1.2)}
.chest-reward{top:38%;left:50%;width:104px;height:104px;transform:translate(-50%,35px) scale(.25);transition:none}.chest-scene.is-open .chest-reward{animation:luck-reward-rise 1.4s .3s cubic-bezier(.18,.8,.25,1) both}
.chest-burst{position:absolute;inset:10% 28% 18%;z-index:1;opacity:0;background:radial-gradient(ellipse at 50% 85%,#fff2b9aa,#efd17644 35%,transparent 70%);filter:blur(12px);transform-origin:50% 90%;pointer-events:none}.chest-scene.is-open .chest-burst{animation:luck-burst 1.7s ease-out both}.chest-burst:after{content:'';position:absolute;left:50%;top:60%;width:3px;height:3px;border-radius:50%;background:#ffe5a0;box-shadow:-60px -25px #e7c878,56px -50px #e7c878,-35px -95px #fff2c3,40px -130px #efd17e,70px 0 #e7c878;filter:drop-shadow(0 0 4px #ffe5a0)}
.luck-auth-links{display:flex!important;justify-content:center;gap:22px;flex-wrap:wrap}.luck-auth-links a{font-size:14px;padding:8px 0}
.luck-action{padding:0 28px 24px;text-align:center}.luck-res{min-height:46px;font-size:14px;line-height:1.5;color:#d5dfd7;margin:0 0 14px;overflow-wrap:anywhere}.luck-res span{display:block;font-size:12px;font-weight:400;color:#a9b7ad;margin-top:5px}.luck-action .plate{min-width:230px;max-width:100%;justify-content:center;font-size:15px;min-height:48px}.luck-delivery{font-size:11px;color:#a5b0a7;margin:10px 0 0}.luck-action .plate:disabled{cursor:default;filter:saturate(.4);opacity:.65}.luck-action .luck-claimed{border:1px solid #63816a;background:#1f3328;color:#b2d4bc;opacity:1}.luck-box.is-claimed .luck-status{border-color:#63816a;color:#b2d4bc}.luck-box.is-claimed .luck-res{color:#efd499}.luck-res.luck-err{color:#f1ab96}.luck-res a{color:#f5db9f;text-decoration:underline}.luck-notice{padding:12px 16px;border-left:2px solid #ad8d4f;color:#d6c394;font-size:14px}
.luck-prize-list{list-style:none;margin:0;padding:0 24px 18px;display:grid;gap:3px}.luck-prize-list li{display:flex;gap:10px;align-items:center;min-height:47px;padding:3px 8px;border-radius:3px;transition:background .5s}.luck-prize-number{font-size:10px;color:#859388;width:10px;flex-shrink:0}.luck-prize-list img{object-fit:contain;flex-shrink:0}.luck-prize-title{font-size:13px;line-height:1.4;overflow-wrap:anywhere}.luck-chance{margin-left:auto;flex-shrink:0;font-size:12px;color:#bcae8d;font-variant-numeric:tabular-nums}.luck-prize-list li.is-winner{background:#bca46426;outline:1px solid #bca46455}.luck-footnote{font-size:12px;line-height:1.8;color:#a8b5ac;max-width:850px;margin:22px auto 0;text-align:center}.luck-empty{min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;text-align:center;padding:24px}.luck-empty p{margin:0;font:24px var(--f-carve)}.luck-empty span{font-size:13px;color:#a8b5ac}
.luck-widget :is(button,a,select,summary):focus-visible{outline:2px solid #f4d796;outline-offset:5px}
.luck-prize-list{padding-inline:0}.luck-action .plate{text-shadow:none}
@keyframes luck-float{0%,100%{transform:translateY(5px)}50%{transform:translateY(-12px)}}
@keyframes luck-shadow{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(.9);opacity:.45}}
@keyframes luck-reward-rise{0%{opacity:0;transform:translate(-50%,35px) scale(.25)}22%{opacity:1}75%{transform:translate(-50%,-198px) scale(1.18)}100%{opacity:1;transform:translate(-50%,-185px) scale(1.1)}}
@keyframes luck-burst{0%{opacity:0;transform:scale(.35)}25%{opacity:1;transform:scale(1.25)}100%{opacity:.5;transform:scale(1)}}
@keyframes luck-shake{0%,100%{transform:rotate(0)}25%{transform:rotate(-3deg) translateY(-3px)}75%{transform:rotate(3deg) translateY(-3px)}}
@media(max-width:760px){.luck{grid-template-columns:1fr;gap:32px}.luck-toolbar{align-items:flex-start;gap:16px}.luck-char{flex-direction:column;align-items:flex-start;gap:8px;min-width:0}.luck-reset{font-size:12px!important}.luck-card-head{padding:22px 20px 0}.luck-card-head h3{font-size:29px}.luck-stage{height:390px}.luck-object{height:360px}.wheel-wrap{width:340px;max-width:92%}.chest-scene{width:350px;height:350px}.chest-art{width:310px;max-width:94%}.chest-open-art{width:310px;bottom:12px}.chest-rune{width:290px}.chest-reward{top:52%;width:86px;height:86px}.luck-action{padding:0 20px 24px}.luck-prize-list{padding:0 14px 18px}.luck-toolbar>p:first-child{max-width:26ch}}
@media(max-width:380px){.luck-status{font-size:10px;padding:5px}.luck-card-head h3{font-size:26px}.luck-stage{height:360px}.luck-toolbar{flex-wrap:wrap}.luck-reset{text-align:left}.luck-prize-list li{gap:6px}.luck-prize-title{font-size:12px}}
@media(prefers-reduced-motion:reduce){#wheel,.chest-art,.chest-aura,.chest-rune,.chest-open-art,.chest-reward,.chest-burst{transition:none!important;animation:none!important}.chest-scene.is-open .chest-reward{opacity:1;transform:translate(-50%,-185px) scale(1.1)}.chest-scene.is-open .chest-burst{opacity:.5}}

/* Reward previews live in an accessible modal, beside each title. */
.luck-box{scroll-margin-top:100px}.luck-title-row{display:flex;align-items:center;justify-content:center;gap:10px}.luck-info{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;padding:0;border:1px solid #c9ad6f99;border-radius:50%;background:#16251bba;color:#e8cc8d;font:20px var(--f-carve);cursor:pointer}.luck-info:hover{background:#35452b;border-color:#f1d397}
body.luck-dialog-open{overflow:hidden}
.luck-prize-dialog{width:min(570px,calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 40px);box-sizing:border-box;margin:auto;padding:0;border:1px solid #76694f;border-radius:2px;background:#141718;color:#d9d7cc;box-shadow:0 18px 65px #000c,inset 0 0 0 3px #242727;text-shadow:none;overflow:auto;overscroll-behavior:contain}
.luck-prize-dialog::backdrop{background:#030507b8;backdrop-filter:blur(3px)}
.luck-dialog-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;background:#232726;border-bottom:1px solid #645b48;box-shadow:inset 0 1px #a5936330}.luck-dialog-head h3{margin:0;color:#e4dac2;font:25px/1.15 var(--f-carve)}
.luck-dialog-close{flex-shrink:0;width:30px;height:30px;padding:0;border:0;border-radius:0;background:transparent;color:#a9aaa1;font:25px/1 var(--f-text);cursor:pointer}.luck-dialog-close:hover{color:#fff0ce;background:#ffffff09}
.luck-prize-dialog .luck-prize-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:14px;margin:0}.luck-prize-dialog .luck-prize-list li{display:flex;flex-direction:column;justify-content:flex-start;gap:8px;min-width:0;min-height:155px;padding:14px 7px;border:0;border-radius:0;background:none;text-align:center;transition:background .2s}.luck-prize-dialog .luck-prize-list li:hover{background:#ffffff04}.luck-prize-dialog .luck-prize-list img{width:48px;height:48px;box-sizing:content-box;padding:5px;background:#090c0d;border:1px solid #575950;box-shadow:inset 1px 1px #000,1px 1px #0008;object-fit:contain}.luck-prize-dialog .luck-prize-title{font:12px/1.4 var(--f-text);color:#d7d9d2;min-height:34px}.luck-prize-dialog .luck-chance{margin:0;color:#baa979;font:12px var(--f-text)}.luck-prize-dialog .luck-prize-list li.is-winner{background:#afa06314;outline:1px solid #9c8a5355}
@media(max-width:600px){.luck-title-row{gap:8px}.luck-info{flex-basis:30px;width:30px;height:30px}.luck-dialog-head{padding:12px 14px}.luck-dialog-head h3{font-size:25px}.luck-prize-dialog .luck-prize-list{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px}.luck-prize-dialog .luck-prize-list li{padding:12px 6px;min-height:150px}}
