:root{--prx-green:#20c477;--prx-orange:#ff8b22;--prx-red:#f23e3e;--prx-gold:#d6b267;--prx-ink:#09090a;--prx-card-w:166px;--prx-gap:14px}.prx-root{position:fixed;inset:0;z-index:2147482000;pointer-events:none;font-family:Pretendard,"Noto Sans KR",Arial,sans-serif}.prx-backdrop{position:absolute;inset:0;background:rgba(3,3,4,.82);backdrop-filter:blur(12px);opacity:0;transition:.28s}.prx-modal{position:absolute;left:50%;top:50%;width:min(980px,calc(100vw - 34px));max-height:min(700px,calc(100vh - 28px));overflow:hidden;transform:translate(-50%,-46%) scale(.965);background:#0d0d0f;color:#fff;border:1px solid rgba(255,255,255,.13);box-shadow:0 40px 120px rgba(0,0,0,.58);opacity:0;transition:.32s;isolation:isolate}.prx-root.is-open{pointer-events:auto}.prx-root.is-open .prx-backdrop,.prx-root.is-open .prx-modal{opacity:1}.prx-root.is-open .prx-modal{transform:translate(-50%,-50%) scale(1)}.prx-grade-frame{position:absolute;inset:0;z-index:20;pointer-events:none;border:2px solid rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);transition:border-color .18s,box-shadow .18s}.prx-root.is-spinning .prx-grade-frame{animation:prxGradeCycle .42s steps(1,end) infinite}.prx-root.grade-green.is-locked .prx-grade-frame{border-color:var(--prx-green);box-shadow:inset 0 0 30px rgba(32,196,119,.16),0 0 46px rgba(32,196,119,.25)}.prx-root.grade-orange.is-locked .prx-grade-frame{border-color:var(--prx-orange);box-shadow:inset 0 0 30px rgba(255,139,34,.16),0 0 46px rgba(255,139,34,.27)}.prx-root.grade-red.is-locked .prx-grade-frame{border-color:var(--prx-red);box-shadow:inset 0 0 34px rgba(242,62,62,.19),0 0 58px rgba(242,62,62,.32)}.prx-top{padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.09);display:flex;justify-content:space-between;align-items:flex-start;gap:18px;position:relative;z-index:3}.prx-top div{display:grid;gap:5px}.prx-top span{font-size:11px;font-weight:950;letter-spacing:.2em;color:var(--prx-gold)}.prx-top small{font-size:12px;color:#817c74}.prx-close{border:0;background:transparent;color:#8e8e91;font-size:28px;line-height:1;cursor:pointer}.prx-arena{position:relative;padding:24px 0 21px;background:radial-gradient(circle at 50% 40%,rgba(214,178,103,.13),transparent 40%),linear-gradient(180deg,#121214,#09090b);overflow:hidden}.prx-arena:before{content:"PICK  CHANCE  PICK  CHANCE  PICK";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;font:950 82px/1 Arial,sans-serif;letter-spacing:.08em;color:rgba(255,255,255,.022)}.prx-arena-head{position:relative;z-index:2;padding:0 26px 17px;display:flex;align-items:center;justify-content:space-between;gap:14px}.prx-arena-head b{font-size:15px;letter-spacing:-.02em}.prx-arena-head span{border:1px solid rgba(214,178,103,.36);padding:6px 9px;font-size:10px;font-weight:900;letter-spacing:.1em;color:var(--prx-gold)}.prx-strip-viewport{position:relative;height:286px;overflow:hidden;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.prx-strip-track{height:100%;display:flex;align-items:center;gap:var(--prx-gap);width:max-content;padding-inline:calc(50% - (var(--prx-card-w)/2));box-sizing:border-box;will-change:transform}.prx-strip-card{width:var(--prx-card-w);flex:0 0 var(--prx-card-w);display:grid;gap:7px;opacity:.48;transform:scale(.91);transition:opacity .25s,transform .25s,filter .25s;filter:saturate(.72)}.prx-strip-card>div{width:100%;aspect-ratio:1/1;background:#19191c;border:1px solid rgba(255,255,255,.09);box-sizing:border-box;overflow:hidden}.prx-strip-card img{width:100%;height:100%;object-fit:cover;display:block}.prx-noimg{width:100%;height:100%;display:grid;place-items:center;font:900 38px/1 Georgia,serif;color:rgba(214,178,103,.45)}.prx-strip-card small{font-size:10px;color:#716e69;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prx-strip-card b{font-size:12px;line-height:1.35;height:33px;overflow:hidden}.prx-root.is-locked:not(.is-result-stage) .prx-strip-card.is-target{opacity:1;transform:scale(1);filter:none}.prx-center-marker{position:absolute;z-index:6;left:50%;top:0;bottom:0;width:var(--prx-card-w);transform:translateX(-50%);border-left:1px solid rgba(214,178,103,.78);border-right:1px solid rgba(214,178,103,.78);pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:space-between;box-sizing:border-box}.prx-center-marker:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(214,178,103,.08),transparent 35%,transparent 65%,rgba(214,178,103,.08));box-shadow:inset 0 0 36px rgba(214,178,103,.09)}.prx-center-marker i{width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent}.prx-center-marker i:first-child{border-top:11px solid var(--prx-gold)}.prx-center-marker i:last-child{border-bottom:11px solid var(--prx-gold)}.prx-center-marker b{position:absolute;top:9px;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:.2em;color:var(--prx-gold)}.prx-grade-status{position:relative;z-index:2;margin:16px 26px 0;display:flex;justify-content:space-between;align-items:center}.prx-grade-status span{font-size:9px;letter-spacing:.2em;color:#666}.prx-grade-status b{font-size:12px;color:#b4b0a8}.prx-root.is-spinning .prx-grade-status b{animation:prxStatusPulse .45s ease-in-out infinite alternate}.prx-root.grade-green.is-locked .prx-grade-status b{color:var(--prx-green)}.prx-root.grade-orange.is-locked .prx-grade-status b{color:var(--prx-orange)}.prx-root.grade-red.is-locked .prx-grade-status b{color:var(--prx-red)}.prx-stage-result{position:absolute;z-index:10;inset:0;display:grid;grid-template-columns:minmax(210px,34%) 1fr;background:radial-gradient(circle at 70% 40%,rgba(214,178,103,.1),transparent 45%),#0d0d0f;opacity:0;visibility:hidden;transform:scale(.985);transition:opacity .32s,transform .32s,visibility .32s}.prx-root.is-result-stage .prx-stage-result{opacity:1;visibility:visible;transform:none}.prx-root.is-result-stage .prx-strip-track,.prx-root.is-result-stage .prx-center-marker{opacity:0;transition:opacity .22s}.prx-stage-media{position:relative;overflow:hidden;background:#171719}.prx-stage-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.prx-stage-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(0,0,0,.76))}.prx-badge{position:absolute;z-index:2;left:18px;bottom:18px;padding:8px 12px;font-size:12px;font-weight:1000}.prx-root.grade-green .prx-badge{background:var(--prx-green)}.prx-root.grade-orange .prx-badge{background:var(--prx-orange)}.prx-root.grade-red .prx-badge{background:var(--prx-red)}.prx-stage-copy{padding:24px 28px;display:flex;flex-direction:column;justify-content:center;min-width:0}.prx-lock-copy{display:flex;align-items:center;justify-content:space-between;gap:12px}.prx-lock-copy small{color:#928d84;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prx-lock-copy em{font-size:10px;font-style:normal;color:var(--prx-gold);letter-spacing:.04em}.prx-stage-copy h3{margin:8px 0 14px;font-size:24px;line-height:1.28;letter-spacing:-.035em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.prx-price{display:flex;align-items:flex-end;gap:11px;min-width:0}.prx-price s{color:#666;font-size:13px}.prx-price strong{font-size:34px;letter-spacing:-.055em;white-space:nowrap}.prx-discount{margin-left:auto;font-size:18px;font-weight:1000}.prx-root.grade-green .prx-discount{color:var(--prx-green)}.prx-root.grade-orange .prx-discount{color:var(--prx-orange)}.prx-root.grade-red .prx-discount{color:var(--prx-red)}.prx-timer{margin-top:14px;padding:10px 13px;background:#18181b;display:flex;justify-content:space-between;gap:10px}.prx-timer span{font-size:12px;color:#908c85}.prx-timer b{font-variant-numeric:tabular-nums}.prx-buy{margin-top:10px;width:100%;height:44px;border:0;background:var(--prx-gold);color:#111;font-weight:1000;cursor:pointer}.prx-buy[disabled]{opacity:.45;cursor:not-allowed}.prx-demo{display:none;margin-top:7px;color:#817b71;font-size:10px}.prx-root.is-demo .prx-demo{display:block}.prx-particles{position:absolute;z-index:16;left:50%;top:51%;width:1px;height:1px;pointer-events:none}.prx-particles i{position:absolute;width:7px;height:12px;border-radius:2px;background:currentColor;opacity:0}.prx-root.grade-green .prx-particles{color:var(--prx-green)}.prx-root.grade-orange .prx-particles{color:var(--prx-orange)}.prx-root.grade-red .prx-particles{color:var(--prx-red)}.prx-root.is-bursting .prx-particles i{animation:prxParticle .86s cubic-bezier(.1,.75,.25,1) var(--delay) both}.prx-chip{position:fixed;right:20px;bottom:22px;z-index:2147481900;border:1px solid rgba(214,178,103,.5);background:#111;color:#fff;padding:11px 14px;display:none;gap:9px;align-items:center;box-shadow:0 14px 35px rgba(0,0,0,.22);cursor:pointer;font-family:inherit}.prx-chip.is-visible{display:flex}.prx-chip i{width:9px;height:9px;border-radius:50%;background:var(--prx-gold);box-shadow:0 0 14px var(--prx-gold)}.prx-chip b{font-size:12px}.prx-chip span{font-size:11px;color:#aaa}@keyframes prxGradeCycle{0%,100%{border-color:var(--prx-green);box-shadow:inset 0 0 30px rgba(32,196,119,.17),0 0 36px rgba(32,196,119,.2)}33%{border-color:var(--prx-orange);box-shadow:inset 0 0 30px rgba(255,139,34,.17),0 0 36px rgba(255,139,34,.22)}66%{border-color:var(--prx-red);box-shadow:inset 0 0 30px rgba(242,62,62,.17),0 0 36px rgba(242,62,62,.24)}}@keyframes prxStatusPulse{to{opacity:.38}}@keyframes prxParticle{0%{opacity:1;transform:translate(0,0) rotate(0) scale(var(--scale))}80%{opacity:1}100%{opacity:0;transform:translate(var(--px),var(--py)) rotate(var(--rot)) scale(.15)}}@media(max-width:720px){:root{--prx-card-w:132px;--prx-gap:10px}.prx-modal{width:calc(100vw - 18px);max-height:calc(100vh - 18px)}.prx-top{padding:16px 17px}.prx-top small{display:none}.prx-arena{padding-top:18px}.prx-arena-head{padding:0 17px 13px}.prx-strip-viewport{height:360px}.prx-strip-card b{font-size:11px}.prx-stage-result{grid-template-columns:1fr;grid-template-rows:145px 1fr}.prx-stage-media{min-height:145px}.prx-stage-copy{padding:15px 16px}.prx-stage-copy h3{font-size:17px;margin:6px 0 10px}.prx-price{gap:7px}.prx-price strong{font-size:27px}.prx-discount{font-size:14px}.prx-lock-copy em{display:none}.prx-timer{margin-top:10px}.prx-buy{height:42px}.prx-chip{right:12px;bottom:90px}}@media(prefers-reduced-motion:reduce){.prx-grade-frame,.prx-grade-status b,.prx-particles i{animation:none!important}.prx-modal,.prx-strip-card,.prx-stage-result{transition:none!important}}

/* 0183 · 룰렛 리텐션 지갑 / 전역 노출 */
.prx-ticket-chip{position:fixed;right:18px;bottom:20px;z-index:10031;display:none;align-items:center;gap:8px;min-height:46px;padding:9px 13px;border:1px solid rgba(224,190,111,.52);border-radius:999px;background:rgba(12,12,13,.94);color:#f5ebd6;box-shadow:0 12px 38px rgba(0,0,0,.34);backdrop-filter:blur(14px);cursor:pointer;font:inherit}
.prx-ticket-chip.is-visible{display:flex}.prx-ticket-chip span{font-size:17px}.prx-ticket-chip b{font-size:12px;letter-spacing:.03em}.prx-ticket-chip em{font-style:normal;font-size:12px;font-weight:900;color:#e4c271;padding:4px 8px;border-radius:999px;background:rgba(213,177,91,.12)}
.prx-ticket-chip.is-loading{opacity:.58;pointer-events:none}.prx-ticket-chip.is-empty{border-color:rgba(255,255,255,.12);color:#999}.prx-ticket-chip.is-empty em{color:#888;background:#171719}
.prx-chip.is-visible~.prx-ticket-chip{bottom:76px}
.prx-reward-prompt{position:fixed;right:20px;bottom:82px;z-index:10036;width:min(360px,calc(100vw - 28px));display:none;padding:20px;border:1px solid rgba(224,190,111,.38);border-radius:20px;background:linear-gradient(145deg,rgba(20,19,17,.98),rgba(10,10,11,.98));color:#f7f1e6;box-shadow:0 24px 80px rgba(0,0,0,.48);backdrop-filter:blur(20px)}
.prx-reward-prompt.is-visible{display:block;animation:prxRewardIn .28s ease-out}.prx-reward-prompt small{display:block;color:#d9b96f;font-size:10px;letter-spacing:.2em}.prx-reward-prompt h3{margin:8px 28px 6px 0;font-size:21px}.prx-reward-prompt p{margin:0;color:#aaa;line-height:1.55;font-size:13px}.prx-reward-prompt>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.prx-reward-prompt>div>b{font-size:13px;color:#e4c271}.prx-reward-prompt>div>button{border:0;border-radius:12px;background:#d8b86c;color:#111;padding:10px 14px;font-weight:900;cursor:pointer}.prx-reward-close{position:absolute;right:12px;top:10px;border:0;background:transparent;color:#777;font-size:22px;cursor:pointer}
@keyframes prxRewardIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:720px){.prx-ticket-chip{right:12px;bottom:84px}.prx-chip.is-visible~.prx-ticket-chip{bottom:138px}.prx-reward-prompt{right:14px;bottom:142px}}


/* 0185 · 결과 화면에서 바로 장바구니 / 결제 */
.prx-buy-actions{display:grid;grid-template-columns:.9fr 1.1fr;gap:8px;margin-top:12px}
.prx-buy-actions .prx-cart,.prx-buy-actions .prx-buy{min-height:54px;border-radius:0;font-weight:900;cursor:pointer}
.prx-buy-actions .prx-cart{border:1px solid rgba(219,183,92,.34);background:#151516;color:#e7d8b3}
.prx-buy-actions .prx-buy{border:0;background:#dabb72;color:#111}
.prx-view{width:100%;margin-top:8px;padding:9px 12px;border:0;background:transparent;color:#8f8f91;font-size:11px;cursor:pointer}
.prx-buy-actions button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:640px){.prx-buy-actions{grid-template-columns:1fr 1.08fr}.prx-buy-actions .prx-cart,.prx-buy-actions .prx-buy{font-size:12px}}

/* 0194 · roulette floating position follows the actual bottom dock */
@media(max-width:720px){
  .prx-ticket-chip{right:10px!important;bottom:var(--prx-floating-bottom,max(10px,env(safe-area-inset-bottom)))!important}
  .prx-chip{right:10px!important;bottom:calc(var(--prx-floating-bottom,10px) + 56px)!important}
  .prx-chip.is-visible~.prx-ticket-chip{bottom:var(--prx-floating-bottom,max(10px,env(safe-area-inset-bottom)))!important}
  .prx-reward-prompt{right:10px!important;bottom:calc(var(--prx-floating-bottom,10px) + 60px)!important;max-height:min(70dvh,520px);overflow:auto}
}

/* 0215 Product commerce clearance on every web width. */
.prx-ticket-chip{bottom:var(--prx-floating-bottom,20px)!important}
.prx-chip{bottom:calc(var(--prx-floating-bottom,20px) + 56px)!important}
.prx-chip.is-visible~.prx-ticket-chip{bottom:var(--prx-floating-bottom,20px)!important}
.prx-reward-prompt{bottom:calc(var(--prx-floating-bottom,20px) + 60px)!important}


/* 0216 Single-owner floating clearance.
 * --prx-floating-bottom is now calculated only by pick-roulette-v1.js from the
 * native OS dock, PickChoice navigation and the visible product commerce bar. */
.prx-ticket-chip{bottom:var(--prx-floating-bottom,20px)!important}
.prx-chip{bottom:calc(var(--prx-floating-bottom,20px) + 56px)!important}
.prx-chip.is-visible~.prx-ticket-chip{bottom:var(--prx-floating-bottom,20px)!important}
.prx-reward-prompt{bottom:calc(var(--prx-floating-bottom,20px) + 60px)!important}
html.pc-native-app .prx-ticket-chip{max-width:calc(100vw - 20px)}


/* 0217 Synchronous bottom-stack coordinator.
 * Product commerce publishes --pc-commerce-float-bottom before its visible class is
 * applied. CSS max() resolves that reservation in the same paint, removing the old
 * one-frame overlap and delayed jump on both web and native app. */
:root{--pc-commerce-float-bottom:0px}
.prx-ticket-chip{bottom:max(var(--prx-floating-bottom,20px),var(--pc-commerce-float-bottom,0px))!important}
.prx-chip{bottom:calc(max(var(--prx-floating-bottom,20px),var(--pc-commerce-float-bottom,0px)) + 56px)!important}
.prx-chip.is-visible~.prx-ticket-chip{bottom:max(var(--prx-floating-bottom,20px),var(--pc-commerce-float-bottom,0px))!important}
.prx-reward-prompt{bottom:calc(max(var(--prx-floating-bottom,20px),var(--pc-commerce-float-bottom,0px)) + 60px)!important}
