.shop-shell{max-width:1100px;margin:auto;padding:28px 20px 60px;color:#25364a}.shop-header{display:flex;align-items:center;gap:16px;margin-bottom:28px}.shop-header h1{font-size:clamp(20px,3vw,29px);font-weight:900;margin:4px 0}.shop-eyebrow{font-size:11px;letter-spacing:.16em;font-weight:900;color:#667a78}.shop-wallet{margin-left:auto;background:#fff7dc;border:1px solid #f1df9d;border-radius:20px;padding:10px 20px;text-align:center;flex-shrink:0}.shop-wallet span{display:block;font-size:11px;color:#78663b}.shop-wallet strong{font-size:24px}.shop-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}.shop-stage{background:radial-gradient(ellipse at 50% 45%,#fffaf0 0,#eaf4ea 60%,#e4efdf 100%);border:1px solid #d8e6d4;border-radius:32px;overflow:hidden;position:relative;min-height:560px;padding:28px 20px;text-align:center;isolation:isolate}.shop-stage:before{content:'';position:absolute;width:340px;height:340px;border:1px dashed #bdcdb7;border-radius:50%;left:50%;top:130px;transform:translateX(-50%);z-index:-1}.shop-tag{display:inline-block;padding:6px 12px;border-radius:30px;background:#fff9;font-size:12px;font-weight:800;color:#55735b}.shop-stage h2{font-size:30px;font-weight:900;margin:12px 0 6px}.shop-stage-heading p{font-size:13px;color:#607365}.shop-stage-bottom{font-size:11px;color:#6b8268;margin-top:10px}.shop-machine{position:relative;width:276px;height:345px;margin:20px auto 0;filter:drop-shadow(0 16px 12px #46634422)}.shop-machine-sign{position:absolute;top:0;left:28px;width:220px;border-radius:12px 12px 0 0;background:#497567;color:#fff;font-size:9px;letter-spacing:.15em;font-weight:900;padding:12px;z-index:3}.shop-globe{position:absolute;top:26px;left:13px;width:250px;height:228px;border:8px solid #f6cf7f;border-radius:90px 90px 48px 48px;background:linear-gradient(145deg,#fff9,#d8f5e777);box-shadow:inset 0 0 0 3px #fff7,inset 0 -20px 30px #3d775d22;overflow:hidden;z-index:2}.shop-glass-shine{position:absolute;top:22px;left:20px;width:24px;height:112px;border-radius:50%;background:#fff9;transform:rotate(14deg);pointer-events:none}.shop-balls{position:absolute;inset:0}.shop-ball{position:absolute;left:var(--x);top:var(--y);width:43px;height:43px;border-radius:50%;background:linear-gradient(180deg,hsl(var(--h) 65% 73%) 0 48%,#fff5 48% 53%,hsl(var(--h) 45% 90%) 53%);box-shadow:inset -5px -5px 8px #0002,inset 4px 4px 8px #fff9,0 3px 5px #2343;transform:rotate(var(--r))}.shop-machine-base{position:absolute;top:235px;left:29px;width:218px;height:94px;border-radius:0 0 24px 24px;background:linear-gradient(100deg,#efb45d,#ffdd94 50%,#e8ac56);box-shadow:inset 0 6px 0 #d9984044}.shop-crank{position:absolute;top:14px;right:24px;width:62px;height:62px;border-radius:50%;background:#f8ede1;border:6px solid #d19b55;box-shadow:0 4px 0 #a87938}.shop-crank i{position:absolute;inset:15px -4px;background:#497567;border-radius:8px;box-shadow:0 3px 0 #2a5346}.shop-coin-slot{position:absolute;left:32px;top:15px;width:42px;height:8px;background:#6f543b;border-radius:5px;border-bottom:2px solid #ffeac0}.shop-chute{position:absolute;left:24px;bottom:14px;width:68px;height:40px;border-radius:20px 20px 8px 8px;background:#314f44;box-shadow:inset 0 7px 8px #142b26}.shop-machine-foot{position:absolute;bottom:2px;left:18px;width:240px;height:15px;border-radius:5px 5px 12px 12px;background:#42715f}.shop-drop{position:absolute;top:280px;left:65px;width:46px;height:46px;z-index:5;opacity:0;transform:scale(.3)}.shop-drop i,.shop-drop b{position:absolute;left:0;width:46px;height:23px;background:linear-gradient(120deg,#e8b7fb,#a77ed2);border-radius:30px 30px 0 0;box-shadow:inset -4px -3px 5px #0002}.shop-drop b{top:23px;border-radius:0 0 30px 30px;background:linear-gradient(120deg,#fff,#e8dbf8)}.is-cranking .shop-crank{animation:shop-turn .8s ease-in-out infinite}.is-cranking .shop-ball{animation:shop-mix .5s ease-in-out var(--delay) infinite alternate}.is-dispensing .shop-drop{animation:shop-drop 1.1s cubic-bezier(.2,.8,.4,1) forwards}.is-dispensing .shop-drop i{animation:shop-open-top .6s 1.4s ease forwards}.is-dispensing .shop-drop b{animation:shop-open-bottom .6s 1.4s ease forwards}.shop-award{position:absolute;inset:190px 24px auto;background:#fffdf7;border:2px solid #d6b5ed;border-radius:24px;padding:26px 14px;box-shadow:0 20px 50px #59436b33;animation:shop-award .45s ease both;z-index:6}.shop-award>span{font-size:42px}.shop-award p{font-size:13px;color:#7e638d;margin:6px}.shop-award h3{font-size:24px;font-weight:900;margin:12px 0}.shop-award small{font-size:12px}.shop-choices{padding:8px 0}.shop-choices>h2{font-size:21px;font-weight:900;margin:8px 0 20px}.shop-item-list{display:grid;gap:10px}.shop-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:2px solid #e7e6dd;background:#fffdf9;border-radius:18px;padding:14px 16px;transition:transform .16s,border-color .16s,box-shadow .16s}.shop-item:not(:disabled):hover{transform:translateY(-2px);border-color:#a4c0b1}.shop-item.is-selected{border-color:#527966;background:#f1f8ef;box-shadow:0 0 0 3px #52796615}.shop-item:disabled{opacity:.55;cursor:not-allowed}.shop-item-icon{font-size:27px;width:42px;text-align:center}.shop-item-label{flex:1}.shop-item-label strong{display:block;font-size:15px;font-weight:800}.shop-item-label small{display:block;font-size:11px;color:#7c8585;margin-top:4px}.shop-item>b{font-size:23px;text-align:center;color:#59705d}.shop-item>b small{display:block;font-size:10px}.shop-odds{background:#f4edf9;border-radius:14px;padding:14px;margin:16px 0;font-size:12px;color:#675078}.shop-odds summary{font-weight:800;cursor:pointer}.shop-odds ul{list-style:none;padding:0;margin:10px 0 0}.shop-odds li{display:flex;justify-content:space-between;gap:12px;padding:5px 0}.shop-hint{font-size:12px;color:#707f72;margin:18px 3px;line-height:1.7}.shop-buy{display:block;width:100%;background:#426e5b;color:#fff;border:0;border-bottom:5px solid #2b4e3d;border-radius:16px;padding:18px 10px;font-size:17px;font-weight:900;transition:transform .15s}.shop-buy span{font-size:13px;font-weight:500;color:#e0e9da}.shop-buy:not(:disabled):active{transform:translateY(3px);border-bottom-width:2px}.shop-buy:disabled{background:#a6b0a3;border-bottom-color:#929d8f;cursor:not-allowed}.shop-message{color:#995c3d;font-size:13px;margin:12px 0;min-height:20px;line-height:1.6}.shop-fine{font-size:11px;color:#8b8e85;text-align:center;margin-top:14px}.shop-inventory{margin-top:32px;background:#fffdf8;border:1px solid #e7e3d7;border-radius:24px;padding:24px}.shop-section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.shop-section-title h2{font-size:21px;font-weight:900;margin-top:5px}.shop-ticket{display:flex;align-items:center;gap:14px;border:1px solid #d7dfce;border-left:5px solid #87a477;border-radius:13px;background:#f8fbf1;padding:15px;margin-bottom:10px}.shop-ticket.is-used{background:#f4f3ee;border-color:#ddd;color:#85877f}.shop-ticket-stamp{font-size:26px;padding-right:12px;border-right:1px dashed #cbd3c1}.shop-ticket-copy{flex:1;min-width:0}.shop-ticket h3{font-size:16px;font-weight:900;overflow-wrap:anywhere}.shop-ticket p{font-size:11px;color:#75816d;margin-top:4px}.shop-ticket small{font-size:10px;color:#85917d}.shop-status{font-size:11px;font-weight:800;white-space:nowrap}.shop-empty{text-align:center;color:#7b8276;padding:28px;font-size:13px}.shop-admin{max-width:1000px}.shop-admin h1{font-size:26px;font-weight:900}.shop-settings{padding:24px}.shop-settings>summary{font-size:18px;font-weight:900;cursor:pointer;margin-bottom:14px}.shop-editor{margin:20px 0;border:1px solid #dedfd5;border-radius:16px;padding:16px}.shop-editor legend{padding:0 8px;font-weight:900}.shop-editor-fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.shop-editor label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;min-width:0}.shop-editor input,.shop-editor select{padding:10px;width:100%;min-width:0}.shop-editor .shop-enabled{flex-direction:row;align-items:center;grid-column:1/-1}.shop-enabled input{width:auto}.shop-prizes{margin-top:16px;background:#f5f0fa;border-radius:12px;padding:14px}.shop-prizes[hidden]{display:none}.shop-prize-row{display:grid;grid-template-columns:2fr 1fr auto;align-items:end;gap:10px;margin:12px 0}.shop-remove{color:#a46969;font-size:11px;margin-top:14px;text-decoration:underline}.shop-admin-actions{display:flex;justify-content:space-between;gap:12px}.shop-settings #shop-admin-message{margin-top:12px;font-size:13px;color:#476e53}
@keyframes shop-turn{to{transform:rotate(360deg)}}@keyframes shop-mix{from{transform:translate(-9px,-12px) rotate(var(--r))}to{transform:translate(8px,14px) rotate(calc(var(--r) + 140deg))}}@keyframes shop-drop{0%{opacity:0;transform:translateY(-25px) scale(.3)}35%{opacity:1}70%{transform:translate(55px,35px) scale(1.6) rotate(20deg)}100%{opacity:1;transform:translate(55px,22px) scale(1.6)}}@keyframes shop-open-top{to{transform:translate(-7px,-20px) rotate(-22deg)}}@keyframes shop-open-bottom{to{transform:translate(6px,10px) rotate(18deg)}}@keyframes shop-award{from{opacity:0;transform:translateY(18px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:700px){.shop-shell{padding:18px 12px 40px}.shop-header{gap:9px}.shop-header h1{font-size:18px}.shop-eyebrow{font-size:9px}.shop-wallet{padding:8px 12px}.shop-wallet strong{font-size:19px}.shop-layout{grid-template-columns:1fr;gap:18px}.shop-stage{min-height:480px;padding:20px 12px}.shop-stage h2{font-size:26px}.shop-machine{transform:scale(.88);transform-origin:top center;margin-bottom:-36px}.shop-choices{padding:8px}.shop-inventory{padding:16px}.shop-ticket{gap:8px;padding:12px 9px}.shop-ticket-stamp{padding-right:8px}.shop-ticket h3{font-size:14px}.shop-ticket .btn{font-size:11px;padding:8px}.shop-editor-fields{grid-template-columns:1fr 1fr}.shop-editor-fields>label:first-child{grid-column:1/-1}.shop-prize-row{grid-template-columns:1fr 75px auto}.shop-settings{padding:14px}.shop-prize-row .btn{font-size:10px;padding:8px}.shop-section-title h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){.shop-shell *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.shop-shell [hidden], .shop-admin [hidden] { display: none !important; }
.shop-prize-row { grid-template-columns: 2fr 1fr 1fr auto; }
@media(max-width:700px) { .shop-prize-row { grid-template-columns: 1fr 80px; } .shop-header { flex-wrap: wrap; } }
