.fgp-tt{position:relative;aspect-ratio:1.18/1;border-radius:26px;background:linear-gradient(145deg,#5a3a26,#3a2416);box-shadow:0 30px 60px rgba(43,29,36,.28),inset 0 2px 0 rgba(255,255,255,.12);padding:6%}
.fgp-plat{position:absolute;left:6%;top:6%;width:66%;aspect-ratio:1;border-radius:50%;background:#1a1a1a;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.fgp-rec{position:absolute;inset:3%;border-radius:50%;background:radial-gradient(circle,transparent 30%,rgba(255,255,255,.04) 31%,transparent 32%),repeating-radial-gradient(circle,#141414 0 2px,#222 2px 4px);animation:fgpspin 1.8s linear infinite;animation-play-state:paused}
.fgp-rec:after{content:'';position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 30deg,transparent 0 20%,rgba(255,255,255,.12) 25%,transparent 30% 70%,rgba(255,255,255,.1) 75%,transparent 80%)}
.fgp.playing .fgp-rec{animation-play-state:running}
.fgp-lbl{position:absolute;left:50%;top:50%;width:36%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:var(--acc) center/cover;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;font-family:Georgia,serif;font-style:italic;font-size:clamp(10px,1.35vw,15px);padding:8px;line-height:1.15;z-index:1}
.fgp-lbl .fgp-lmark{width:42%;height:auto;margin-bottom:3px}
.fgp-lbl:after{content:'';position:absolute;left:50%;top:50%;width:6%;aspect-ratio:1;margin:-3% 0 0 -3%;border-radius:50%;background:#2a2a2a}
.fgp-arm{position:absolute;right:7%;top:5%;width:30%;height:76%;transform-origin:72% 9%;transform:rotate(-24deg);transition:transform .9s cubic-bezier(.5,0,.2,1)}
.fgp.playing .fgp-arm{transform:rotate(13deg)}
.fgp-knob{position:absolute;right:7%;bottom:6%;width:10%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e8c98f,#8a6a3a)}
.fgp-led{position:absolute;right:21%;bottom:10%;width:2.4%;aspect-ratio:1;border-radius:50%;background:#5a2a1a}
.fgp.playing .fgp-led{background:#ff5a4f;box-shadow:0 0 10px #ff5a4f}
.fgp-vplate{position:absolute;left:7%;bottom:4.2%;width:52%;height:auto;padding:1.2% 2%;border-radius:8px;background:rgba(20,10,4,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
@keyframes fgpspin{to{transform:rotate(360deg)}}
.fgp-dev{position:relative;width:100%}
.fgp-dev>svg{display:block;width:100%;height:auto;overflow:visible}
.fgp-spin{transform-box:fill-box;transform-origin:center;animation:fgpspin 2.2s linear infinite;animation-play-state:paused}
.fgp.playing .fgp-spin{animation-play-state:running}
.fgp-gr-rec{animation-duration:1.8s}
.fgp-ndl{transition:transform .9s cubic-bezier(.5,0,.2,1)}
.fgp-r-glow,.fgp-r-halo{transition:opacity .6s}
.fgp.playing .fgp-r-glow{opacity:1}
.fgp.playing .fgp-r-halo{opacity:.55}
.fgp-r-eye{opacity:.35;transition:opacity .5s}
.fgp.playing .fgp-r-eye{opacity:1;animation:fgpeye 1.4s ease-in-out infinite}
.fgp-r-st.on{fill:#c0161f}
.fgp-kn{transition:transform .9s cubic-bezier(.5,0,.2,1)}
@keyframes fgpeye{50%{opacity:.7}}
.fgp-reel{animation-duration:2.6s}
.fgp-cs-pl,.fgp-cs-pr{transition:r .6s linear}
.fgp-mb-pins{animation:fgppins .7s linear infinite;animation-play-state:paused}
.fgp.playing .fgp-mb-pins{animation-play-state:running}
.fgp-mb-key{transform-box:fill-box;transform-origin:center;animation:fgpkey 1.6s linear infinite;animation-play-state:paused}
.fgp.playing .fgp-mb-key{animation-play-state:running}
@keyframes fgppins{to{transform:translateY(6px)}}
@keyframes fgpkey{0%{transform:scaleX(1)}25%{transform:scaleX(.08)}50%{transform:scaleX(-1)}75%{transform:scaleX(.08)}100%{transform:scaleX(1)}}
.fgp-notes{position:absolute;inset:0;pointer-events:none;overflow:visible}
.fgp-notes i{position:absolute;bottom:52%;font-style:normal;font-size:26px;color:var(--acc);opacity:0}
.fgp-notes-gr i{bottom:62%;color:#a87c3a}
.fgp.playing .fgp-notes i{animation:fgpnote 3s ease-in infinite}
@keyframes fgpnote{0%{opacity:0;transform:translate(0,0)}20%{opacity:1}100%{opacity:0;transform:translate(var(--dx),-170px) rotate(20deg)}}
.fgp-sn{animation:fgpsnow 6s linear infinite;animation-play-state:paused}
.fgp.playing .fgp-sn{animation-play-state:running}
@keyframes fgpsnow{0%{transform:translate(0,0)}100%{transform:translate(var(--dx),330px)}}
.fgp-sg-win{opacity:.45;transition:opacity .8s}
.fgp.playing .fgp-sg-win{opacity:1}
.fgp-sg-smoke{opacity:.5}
.fgp.playing .fgp-sg-smoke{animation:fgpsmoke 3s ease-out infinite}
@keyframes fgpsmoke{0%{transform:translate(0,8px);opacity:0}30%{opacity:1}100%{transform:translate(6px,-14px);opacity:0}}
.fgp-jb-tube{transition:filter .6s}
.fgp.playing .fgp-jb-tube{animation:fgphue 4s linear infinite}
@keyframes fgphue{to{filter:hue-rotate(360deg)}}
.fgp-jb-halo{opacity:.35;transition:opacity .6s}
.fgp.playing .fgp-jb-halo{opacity:1;animation:fgphalo 1.6s ease-in-out infinite}
@keyframes fgphalo{50%{opacity:.7}}
.fgp-bub{animation:fgpbub 2.6s linear infinite;animation-play-state:paused}
.fgp.playing .fgp-bub{animation-play-state:running}
@keyframes fgpbub{0%{transform:translateY(0)}100%{transform:translateY(-124px)}}
.fgp-jb-btns rect.on{fill:#ff6b8a}
.fgp-gr-crank{transform-origin:414px 372px;animation:fgpspin 2.4s linear infinite;animation-play-state:paused}
.fgp.playing .fgp-gr-crank{animation-play-state:running}
.fgp-gr-horn{transform-origin:404px 284px;transition:transform .6s}
.fgp.playing .fgp-gr-horn{animation:fgphorn 1.8s ease-in-out infinite}
@keyframes fgphorn{50%{transform:scale(1.025) rotate(-.6deg)}}
@media (prefers-reduced-motion:reduce){.fgp *{animation:none!important;transition:none!important}}
.fgp-lbl.img>*{display:none}
