/* Cosmic Fortune Machine v2. All styling is isolated from the music stage. */
.fortune-entry{position:absolute;z-index:9;left:34px;top:540px;width:88px!important;height:88px;min-width:0;min-height:0;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:#fff4be;cursor:pointer;filter:drop-shadow(0 5px 8px #000c);isolation:isolate;overflow:visible;transition:transform .3s,filter .3s}
.fortune-entry:hover{transform:rotate(-8deg) scale(1.06);background:transparent;border:0;filter:drop-shadow(0 0 13px #fdba4277)}.fortune-entry:active{transform:scale(.96)}.fortune-entry:focus-visible{outline:3px solid #9ffff1;outline-offset:4px}.fortune-entry>svg{display:block;width:100%;height:100%;overflow:visible}.fortune-entry-copy,.fortune-entry-coin{display:none}.fortune-entry .fe-face{transform-origin:50% 50%;transition:transform .75s cubic-bezier(.15,.7,.1,1)}.fortune-entry:hover .fe-face{transform:rotate(90deg)}.fortune-entry::after{content:'WHEEL OF FORTUNE';position:absolute;top:calc(100% + 5px);left:50%;transform:translateX(-50%);white-space:nowrap;font:800 7px/1.2 'Segoe UI',sans-serif;letter-spacing:1.2px;color:#ffe5a3;text-shadow:0 2px 3px #000,0 0 8px #000}
body:has(#app.zen) .fortune-entry{visibility:hidden;pointer-events:none}
.fortune-dialog{--fortune-gold:#ffe3a0;box-sizing:border-box;width:min(820px,calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 24px);padding:0;overflow:auto;border:1px solid #e6b6638c;border-radius:24px;color:#fff7e4;background:radial-gradient(ellipse at 15% 20%,#65206a66,transparent 55%),radial-gradient(ellipse at 90% 70%,#074b5759,transparent 55%),#080c1b;box-shadow:0 25px 100px #000e,0 0 0 5px #080b16,0 0 0 6px #edc76a29,0 0 90px #bd44b928;font-family:'Segoe UI',Arial,sans-serif;overscroll-behavior:contain;isolation:isolate}
.fortune-dialog::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.38;background-image:radial-gradient(circle,#fff4c9 1px,transparent 1.5px),radial-gradient(circle,#a8fcff .8px,transparent 1.3px);background-size:91px 83px,137px 111px;background-position:10px 25px,50px 9px}
.fortune-dialog::backdrop{background:#030410b8;backdrop-filter:blur(8px)}.fortune-dialog[open]{animation:fw-arrive .35s cubic-bezier(.1,.8,.2,1)}.fortune-dialog *{box-sizing:border-box}.fortune-dialog button{font-family:inherit;touch-action:manipulation}.fortune-dialog button:focus-visible{outline:3px solid #a3fff0;outline-offset:4px}
.fortune-header{text-align:center;padding:22px 60px 5px}.fortune-eyebrow{margin:0 0 8px;color:#9cf8ef;font:800 8px/1.3 'Segoe UI',sans-serif;letter-spacing:3.4px;text-transform:uppercase}.fortune-header h2{margin:0;color:#fff4bf;font:900 clamp(28px,4.2vw,42px)/.96 Impact,'Arial Narrow','Segoe UI',sans-serif;letter-spacing:1.5px;text-transform:uppercase;transform:skew(-4deg);text-shadow:0 2px #d58134,0 4px #6d296b,0 6px 13px #000,0 0 30px #ffaf5366}.fortune-header h2 span{color:#fff0fa;text-shadow:0 2px #bd57b1,0 4px #5f2764,0 0 24px #e15ae655}.fortune-subtitle{margin:10px 0 0;font-size:10px;color:#bfb5d3;letter-spacing:.5px}.fortune-close{position:absolute;z-index:10;right:9px;top:9px;width:44px;height:44px;border:1px solid #e3c8e94a;border-radius:50%;padding:0;background:#080b1bc9;color:#eae0fa;font-size:25px}.fortune-close:hover{background:#57385c}
.fortune-layout{display:grid;grid-template-columns:minmax(0,1.13fr) minmax(0,.9fr);align-items:center;gap:12px;padding:14px 25px 23px}.fortune-machine{position:relative;width:100%;aspect-ratio:1;max-width:425px;padding:10px;isolation:isolate}.fortune-machine::before{content:'';position:absolute;inset:-9%;z-index:-1;border-radius:50%;background:repeating-conic-gradient(from 10deg,transparent 0deg 7deg,#c755ff12 8deg 11deg,transparent 13deg 22deg);mask-image:radial-gradient(circle,#000 35%,transparent 70%);animation:fw-orbit 80s linear infinite}.fortune-machine::after{content:'';position:absolute;inset:3%;z-index:-1;border-radius:50%;box-shadow:0 0 24px #fda64f33,0 0 70px #c43eb836}
.fortune-rim{position:absolute;inset:7px;border:2px solid #ffe7ad;border-radius:50%;z-index:2;pointer-events:none;box-shadow:0 2px 0 #815329,0 0 0 3px #7e4a32,0 0 0 4px #f6bd7688,inset 0 0 9px #ffce8a77}.fortune-rim svg{width:100%;height:100%;overflow:visible}.fortune-disc{position:relative;width:100%;height:100%;border-radius:50%;filter:drop-shadow(0 7px 8px #000);will-change:transform}.fortune-disc>svg{width:100%;height:100%;overflow:visible}
.fortune-speed-ring{position:absolute;inset:-3%;border-radius:50%;border:2px solid transparent;border-top-color:#ffa952;border-right-color:#e65cff;opacity:0;pointer-events:none;filter:drop-shadow(0 0 6px #ffb453)}.fortune-machine[data-spinning=true] .fortune-speed-ring{opacity:.8;animation:fw-orbit .6s linear infinite}.fortune-machine[data-spinning=true] .fortune-rim .fw-bulb{animation:fw-lights .32s ease-in-out infinite alternate;animation-delay:calc(var(--i)*.025s)}.fortune-machine[data-spinning=true] .fortune-pointer{animation:fw-tick .13s linear infinite}
.fortune-pointer{position:absolute;z-index:5;top:-1px;left:50%;transform:translateX(-50%);width:34px;height:42px;clip-path:polygon(10% 0,90% 0,100% 22%,50% 100%,0 22%);background:linear-gradient(105deg,#a76524 0,#ffdb81 30%,#fff9d5 48%,#e4a44b 56%,#ad5d25 100%);filter:drop-shadow(0 3px 3px #000);box-shadow:inset 0 2px #fff9c8}
.fortune-spin{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:24%;aspect-ratio:1;padding:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;border:3px solid #ffe9aa;color:#fff2af;background:radial-gradient(circle at 35% 20%,#472659,#171626 55%,#060b18);box-shadow:0 4px 0 #70432b,0 0 0 5px #a47545,0 0 0 7px #ffdf93,inset 0 0 0 3px #ccac6b33,inset 0 0 16px #e7669b44,0 0 30px #ffcf6a33;font-size:17px;font-weight:950;letter-spacing:1px;text-shadow:0 0 9px #ffd96c66}
.fortune-spin svg{width:29%;height:29%;margin-bottom:3px;overflow:visible}.fortune-spin small{font-size:6px;letter-spacing:1px;margin-top:3px;color:#87f7e7}.fortune-spin:hover{background:radial-gradient(circle at 35% 20%,#6c397a,#22152f 70%);border-color:#fff}.fortune-spin:active{transform:translate(-50%,-50%) scale(.96)}.fortune-spin:disabled{opacity:1;cursor:default}
.fortune-story{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:340px;padding:15px 15px 17px;text-align:center;border:1px solid #f4d08b3b;border-radius:16px;background:linear-gradient(140deg,#47255242,#10182c8a 48%,#0c2d3c30);box-shadow:inset 0 0 0 4px #090b1766,0 10px 35px #0002;overflow:hidden}
.fortune-story::before,.fortune-story::after{content:'✦';position:absolute;top:6px;color:#eccd8677;font-size:13px}.fortune-story::before{left:8px}.fortune-story::after{right:8px}.fortune-ticket-rule{font-size:7px;font-weight:900;letter-spacing:2.2px;color:#efcf8b;margin:0 0 3px}.fortune-result-icon{position:relative;width:160px;aspect-ratio:1;margin:3px 0 9px;display:grid;place-items:center;isolation:isolate}.fortune-result-icon::before{content:'';position:absolute;inset:-12%;z-index:-1;background:repeating-conic-gradient(from 0deg,#ffc05933 0deg 3deg,transparent 4deg 17deg);mask-image:radial-gradient(circle,#000 20%,transparent 65%);animation:fw-orbit 40s linear infinite}.fortune-result-icon::after{content:'';position:absolute;inset:10%;z-index:-1;border:1px solid #eac16b55;border-radius:50%;box-shadow:0 0 26px #d14ede22,inset 0 0 25px #54eedf22}
.fortune-art{display:block;width:100%;height:100%;background-image:url('fortune-assets/prize-atlas.webp?v=2');background-size:400% 300%;background-position:var(--art-x,33.333%) var(--art-y,0%);background-repeat:no-repeat;border-radius:50%;mask-image:radial-gradient(circle,#000 45%,#000d 59%,transparent 73%);filter:drop-shadow(0 0 12px #facf6c44)}
.fortune-story h3{font:900 clamp(21px,2.7vw,27px)/1.08 'Segoe UI',sans-serif;letter-spacing:-.7px;margin:0;color:#fff1c4;text-shadow:0 2px 12px #0008;overflow-wrap:anywhere}.fortune-story p{font-size:11px;line-height:1.55;margin:9px 0 0;color:#c8c6d9}.fortune-story .fortune-status{font-size:9px;line-height:1.5;color:#81eddc;margin-top:12px;min-height:14px}.fortune-result-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:11px}.fortune-result-actions button{min-height:40px;padding:8px 10px;border:1px solid #f1cb7877;border-radius:7px;background:#f1cb7812;color:#ffe6ad;font-size:9px;font-weight:800}.fortune-result-actions button:hover{background:#f1cb7833}.fortune-result-actions #fortuneDone{background:linear-gradient(120deg,#f9d282,#d9914e);color:#231832;border-color:#ffe8ad;box-shadow:0 3px 0 #6b423a}
.fortune-dialog[data-state=result] .fortune-result-icon{animation:fw-prize .65s cubic-bezier(.1,.8,.2,1)}.fortune-dialog[data-state=result] .fortune-story{border-color:#ffe196aa;box-shadow:inset 0 0 0 4px #090b1766,0 0 30px #ffce6522}.fortune-dialog[data-state=spinning] .fortune-result-icon{animation:fw-hover .9s ease-in-out infinite alternate}.fortune-dialog[data-state=spinning] .fortune-story h3{color:#a5fff1}
.fortune-fineprint{padding:10px 14px;margin:0;border-top:1px solid #eed9a326;text-align:center;font-size:8px;line-height:1.5;color:#a9a6bf;letter-spacing:.15px;background:#04091777}.fortune-fineprint strong{color:#d1c8dc;font-weight:700}.fortune-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:22px;z-index:9}.fortune-confetti i{position:absolute;left:var(--x);top:-20px;width:7px;height:11px;background:var(--color);border-radius:1px;box-shadow:0 0 8px var(--color);animation:fw-confetti 2.8s var(--delay) ease-out both;transform:rotate(var(--r))}
@keyframes fw-orbit{to{transform:rotate(360deg)}}@keyframes fw-arrive{from{opacity:0;transform:scale(.9) translateY(14px)}to{opacity:1;transform:none}}@keyframes fw-lights{to{opacity:.3;filter:brightness(2)}}@keyframes fw-tick{50%{transform:translateX(-50%) rotate(-8deg)}}@keyframes fw-prize{from{opacity:0;transform:scale(.4) rotate(-18deg);filter:brightness(2)}65%{transform:scale(1.12) rotate(5deg)}to{opacity:1;transform:none}}@keyframes fw-hover{to{transform:translateY(-5px) scale(1.03)}}@keyframes fw-confetti{to{top:110%;transform:translateX(var(--drift)) rotate(650deg);opacity:0}}
@media(max-width:1280px),(max-height:600px){.adventure-entry{position:absolute;top:0;left:0;width:100%;height:44px;min-height:44px;padding:5px 12px;justify-content:flex-start;border-bottom:1px solid #cfac6a66}.adventure-entry strong{font-size:clamp(14px,4vw,18px);white-space:nowrap;gap:4px}.adventure-entry strong span{margin-left:3px;font-size:12px}.fortune-entry{position:absolute!important;inset:auto!important;right:10px!important;top:2px!important;left:auto!important;width:40px!important;height:40px;min-height:40px;filter:none}.fortune-entry:hover{transform:none}.fortune-entry::after{top:50%;left:auto;right:49px;transform:translateY(-50%);font-size:8px;letter-spacing:1.3px}.fortune-entry>svg{width:40px;height:40px}#app{height:calc(100dvh - 44px);margin-top:44px}body:has(#app.zen) .fortune-entry{display:none}#app.zen,#app.pure-visualizer{height:100dvh;margin-top:0}}
@media(max-width:600px){.fortune-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:20px}.fortune-header{padding:19px 42px 5px}.fortune-eyebrow{font-size:6px;letter-spacing:1.7px;margin-bottom:7px}.fortune-header h2{font-size:30px;letter-spacing:1px}.fortune-subtitle{font-size:9px;margin-top:8px}.fortune-layout{grid-template-columns:1fr;padding:10px 16px 15px;gap:12px}.fortune-machine{width:min(72vw,31dvh,280px);min-width:195px;margin:auto;padding:6px}.fortune-rim{inset:4px}.fortune-pointer{width:23px;height:30px;top:-3px}.fortune-spin{font-size:12px;padding:5px;border-width:2px;box-shadow:0 3px 0 #70432b,0 0 0 3px #a47545,0 0 0 5px #ffdf93,inset 0 0 14px #e7669b44}.fortune-spin small{font-size:5px;letter-spacing:.5px}.fortune-spin svg{width:24%;height:24%;margin-bottom:2px}.fortune-story{min-height:0;padding:13px 14px}.fortune-result-icon{width:110px;margin:2px 0 7px}.fortune-ticket-rule{font-size:6px;letter-spacing:1.7px}.fortune-story h3{font-size:21px;line-height:1.1}.fortune-story p{font-size:10px;line-height:1.5;max-width:300px;margin-top:7px}.fortune-story .fortune-status{font-size:8px;margin-top:8px}.fortune-result-actions{margin-top:10px}.fortune-fineprint{font-size:7px;padding:8px 12px}.fortune-dialog[data-state=ready] .fortune-result-icon{width:85px}.fortune-dialog[data-state=ready] .fortune-story h3{font-size:20px}.fortune-dialog[data-state=ready] .fortune-story p{display:none}}
@media(max-width:600px) and (max-height:700px){.fortune-header{padding-top:14px}.fortune-subtitle{display:none}.fortune-machine{width:min(65vw,28dvh,220px);min-width:168px}.fortune-layout{gap:8px;padding-top:8px}.fortune-result-icon{width:80px}.fortune-dialog[data-state=ready] .fortune-result-icon{width:55px}.fortune-story h3{font-size:18px}.fortune-story{padding:10px 12px}.fortune-story p{font-size:9px}.fortune-spin{width:27%}.fortune-header h2{font-size:25px}}
@media(max-height:600px) and (min-width:601px){.fortune-dialog{width:min(800px,calc(100vw - 24px))}.fortune-header{padding-top:12px}.fortune-header h2{font-size:28px}.fortune-subtitle{display:none}.fortune-layout{grid-template-columns:1fr 1fr;padding:5px 20px 12px}.fortune-machine{width:min(42vw,calc(100dvh - 125px));min-width:190px;margin:auto}.fortune-story{min-height:0;padding:12px}.fortune-result-icon{width:75px;margin:2px 0 6px}.fortune-story h3{font-size:21px}.fortune-story p{font-size:9px;margin-top:6px}.fortune-story .fortune-status{font-size:8px;margin-top:7px}.fortune-fineprint{padding:6px 12px;font-size:7px}.fortune-result-actions{margin-top:7px}}
@media(prefers-reduced-motion:reduce){.fortune-dialog[open],.fortune-machine::before,.fortune-result-icon,.fortune-result-icon::before,.fortune-machine[data-spinning=true] .fortune-speed-ring,.fortune-machine[data-spinning=true] .fortune-rim .fw-bulb,.fortune-machine[data-spinning=true] .fortune-pointer,.fortune-confetti i{animation:none!important}.fortune-entry,.fortune-entry .fe-face{transition:none}.fortune-confetti{display:none}}
@media(forced-colors:active){.fortune-entry,.fortune-dialog,.fortune-story,.fortune-spin,.fortune-result-actions button{border:2px solid ButtonText}.fortune-spin{background:ButtonFace;color:ButtonText}.fortune-pointer{background:Highlight}.fortune-disc,.fortune-entry>svg{forced-color-adjust:none}}
@media(max-width:1280px),(max-height:600px){.fortune-entry{right:8px!important;top:0!important;width:44px!important;height:44px;min-height:44px}.fortune-entry>svg{width:40px;height:40px}.fortune-entry::after{right:51px}}

@media(max-width:360px){.fortune-header h2{font-size:20px;letter-spacing:.3px}}
