/* SNAP arcade palette. Scoped to the hold modal; gameplay geometry is untouched. */
#holdOverlay.snap-hold-retention-v2{
    padding:16px 12px;
    background:radial-gradient(ellipse at 50% 20%, #9f087b26, transparent 65%), rgba(9,3,21,.88);
    backdrop-filter:blur(5px);
}
#holdOverlay.snap-hold-retention-v2 .hold-card{
    box-sizing:border-box;
    width:min(440px, 100%);
    max-height:calc(100dvh - 32px);
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:24px;
    border:2px solid #ff4bd7;
    border-radius:24px;
    background:radial-gradient(ellipse at 50% 0, #ff4bd733, transparent 48%), linear-gradient(165deg, #431759, #220b36 55%, #160921);
    box-shadow:0 18px 60px #0009, 0 0 24px #ff00c838, inset 0 1px 0 #ffb5ee66;
    color:#fff;
    text-align:center;
    font-family:'Nunito', Arial, sans-serif;
    font-weight:700;
    scrollbar-width:thin;
    scrollbar-color:#ed67cf #220b36;
}
#holdOverlay.snap-hold-retention-v2 .hold-icon{
    display:inline-block; margin:0 0 14px; padding:6px 12px;
    border:1px solid #d9ffad; border-radius:20px;
    color:#15320a; background:linear-gradient(180deg, #d0ff8b, #8cf060);
    box-shadow:0 3px 0 #28551c, 0 0 14px #a6ff0033;
    font:900 11px/1.4 'Nunito', Arial, sans-serif;
    letter-spacing:1.2px; text-shadow:none; filter:none;
}
#holdOverlay.snap-hold-retention-v2 .hold-title{
    margin:0 0 12px; color:#ffe66d;
    font-family:'Rubik Mono One', 'Nunito', Arial, sans-serif;
    font-size:25px; font-weight:400; line-height:1.2;
    letter-spacing:-.7px; text-shadow:0 3px 0 #591c38, 0 0 16px #ffb90040;
    -webkit-text-stroke:0;
}
#holdOverlay.snap-hold-retention-v2 .hold-text{
    margin:0 0 18px; color:#fff4ff; font-size:14px; line-height:1.5;
    font-weight:700; text-shadow:none;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-progress{
    padding:14px 12px 12px; border:1px solid #f6bc47;
    border-radius:16px; background:linear-gradient(150deg, #3b184a, #210d32);
    box-shadow:inset 0 1px 0 #ffe66d24; text-align:left;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-progress h3{
    margin:0 0 12px; color:#ffe66d; font-size:15px; line-height:1.35;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-ropes{
    display:grid; grid-template-columns:repeat(5, minmax(0, 1fr));
    gap:6px; padding:0; margin:0; list-style:none;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-ropes li{
    display:flex; flex-direction:column; align-items:center;
    min-width:0; padding:6px 2px; border:1px solid #9862bd;
    border-radius:10px; background:linear-gradient(180deg, #583373, #352049); text-align:center;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-ropes li[data-stage="1"]{
    border-color:#ffb757; background:linear-gradient(180deg, #714239, #40243b);
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-ropes li[data-stage="2"]{
    border:2px solid #fff4ad; padding:5px 1px;
    background:linear-gradient(180deg, #fff1a8, #ffd84a 55%, #ffb900);
    box-shadow:0 3px 0 #8f4c00, 0 0 16px #ffcc0040;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-rope-number{
    color:#f0dcff; font-size:11px; line-height:1.3;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-rope-art{
    display:grid; place-items:center; width:100%; height:48px; margin:5px 0;
    border-radius:7px; background:#190b2b66;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-rope-art img{
    width:28px; height:48px; object-fit:contain;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-rope-label{
    color:#fff; font-size:11px; font-weight:800; line-height:1.25;
}
#holdOverlay.snap-hold-retention-v2 [data-stage="2"] .snap-hold-rope-label,
#holdOverlay.snap-hold-retention-v2 [data-stage="2"] .snap-hold-rope-number{ color:#3b1c00; }
#holdOverlay.snap-hold-retention-v2 [data-stage="2"] .snap-hold-rope-art{ background:#35153d; }
#holdOverlay.snap-hold-retention-v2 .snap-hold-progress-detail{
    margin:12px 0 0; color:#fff2d7; font-size:12px; line-height:1.5;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-source-countdown,
#holdOverlay.snap-hold-retention-v2 [hidden]{ display:none !important; }
#holdOverlay.snap-hold-retention-v2 .snap-hold-timer{
    display:flex; justify-content:center; align-items:center; gap:12px;
    margin:12px 0 8px; padding:10px 12px; border:1px solid #39dafa;
    border-radius:12px; background:linear-gradient(110deg, #10344a, #123143); color:#e6fcff; font-size:13px;
    box-shadow:inset 0 1px 0 #9ff7ff33;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-timer strong{
    color:#9ff7ff; font-size:20px; line-height:1.1; font-variant-numeric:tabular-nums;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-timer[data-urgent="true"]{ border-color:#ffd84a; background:#482b21; }
#holdOverlay.snap-hold-retention-v2 .snap-hold-timer[data-urgent="true"] strong{ color:#ffe66d; }
#holdOverlay.snap-hold-retention-v2 .snap-hold-fair-note{
    margin:8px 0 16px; color:#dfc8ed; font-size:11px; line-height:1.4;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-free-note{
    margin:0 0 12px; color:#fff4ff; font-size:12px; line-height:1.5;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-free-actions{ display:grid; gap:12px; margin-bottom:14px; }
#holdOverlay.snap-hold-retention-v2 button{
    box-sizing:border-box; width:100%; min-height:44px; height:auto;
    padding:12px; border:1px solid #c96af2; border-radius:16px;
    font:900 12px/1.35 'Nunito', Arial, sans-serif;
    letter-spacing:.2px; cursor:pointer; touch-action:manipulation;
    box-shadow:inset 0 1px 0 #ffffff3d; transition:filter .15s, transform .15s;
}
/* Double the rendered size; override the legacy 11px mobile !important rule. */
#holdOverlay.snap-hold-retention-v2 #snapHoldInviteButton,
#holdOverlay.snap-hold-retention-v2 #holdPackageButton,
#holdOverlay.snap-hold-retention-v2 #snapHoldCabinetButton{ font-size:24px !important; }
@media(max-width:768px){
    #holdOverlay.snap-hold-retention-v2 #snapHoldInviteButton,
    #holdOverlay.snap-hold-retention-v2 #holdPackageButton,
    #holdOverlay.snap-hold-retention-v2 #snapHoldCabinetButton{ font-size:22px !important; }
}
/* All other text and buttons retain their existing sizes. */

#holdOverlay.snap-hold-retention-v2 .snap-hold-invite-button{
    border-color:#dbffaf; background:linear-gradient(180deg, #caff85, #a6ff00 45%, #74d817); color:#183300;
    box-shadow:0 4px 0 #32620a, 0 0 16px #a6ff0029, inset 0 1px 0 #ffffff99;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-cabinet-button{
    border-color:#64dcff; background:linear-gradient(180deg, #493079, #2a194e); color:#e6fbff;
    box-shadow:0 3px 0 #101227, inset 0 1px 0 #9ff7ff33;
}
#holdOverlay.snap-hold-retention-v2 .snap-hold-chatnorris-note{
    margin:0; padding:0 5px; color:#f8d5ef; font-size:12px; line-height:1.4;
}
#holdOverlay.snap-hold-retention-v2 .hold-package-button{
    border-color:#ff86e5; background:linear-gradient(180deg, #c20b91, #a70082 60%, #79005c); color:#fff;
    box-shadow:0 4px 0 #52003c, 0 0 16px #ff00c833, inset 0 1px 0 #ffb5ee66;
}
#holdOverlay.snap-hold-retention-v2 .hold-finish-button{
    margin-top:10px; padding:11px 6px; border-color:transparent;
    background:transparent; color:#e9d4f3; font-size:10px; box-shadow:none;
    text-decoration:underline; text-underline-offset:3px;
}
@media(hover:hover){
    #holdOverlay.snap-hold-retention-v2 button:not(:disabled):hover{ filter:brightness(1.08); }
}
#holdOverlay.snap-hold-retention-v2 button:not(:disabled):active{ transform:translateY(2px); }
#holdOverlay.snap-hold-retention-v2 button:focus-visible{ outline:3px solid #fff4ad; outline-offset:3px; }
#holdOverlay.snap-hold-retention-v2 .hold-title:focus{ outline:none; }
#holdOverlay.snap-hold-retention-v2 .hold-message:empty{ display:none; }
#holdOverlay.snap-hold-retention-v2 .hold-message:not(:empty){
    margin:10px 0; padding:10px; border-radius:10px;
    border:1px solid #ffd84a; background:#422346; color:#fff1a8; font-size:12px; line-height:1.4;
}
#holdOverlay.snap-hold-retention-v2 [data-hold-state="expired"] .hold-icon,
#holdOverlay.snap-hold-retention-v2 [data-hold-state="unknown"] .hold-icon{
    color:#fff1ff; background:#683476; border-color:#d992ee; box-shadow:none;
}
#holdOverlay.snap-hold-retention-v2 [data-hold-state="expired"] .snap-hold-progress{ border-color:#bb83d1; }
#holdOverlay.snap-hold-retention-v2 [data-hold-state="expired"] .snap-hold-ropes li[data-stage="2"]{
    border-color:#b993c8; background:#51365e; box-shadow:none;
}
#holdOverlay.snap-hold-retention-v2 [data-hold-state="expired"] [data-stage="2"] .snap-hold-rope-label,
#holdOverlay.snap-hold-retention-v2 [data-hold-state="expired"] [data-stage="2"] .snap-hold-rope-number{ color:#f0dcff; }
#holdOverlay.snap-hold-retention-v2 [data-hold-state="expired"] .snap-hold-progress h3{ color:#efd3ff; }
@media(max-width:480px){
    #holdOverlay.snap-hold-retention-v2{ padding:10px 8px; }
    #holdOverlay.snap-hold-retention-v2 .hold-card{
        padding:20px 16px 12px; max-height:calc(100dvh - 20px); border-radius:20px;
    }
    #holdOverlay.snap-hold-retention-v2 .hold-title{ font-size:24px; }
}
@media(max-width:350px){
    #holdOverlay.snap-hold-retention-v2 .hold-card{ padding:18px 12px 10px; }
    #holdOverlay.snap-hold-retention-v2 .hold-title{ font-size:21px; }
    #holdOverlay.snap-hold-retention-v2 .snap-hold-progress{ padding:12px 8px; }
    #holdOverlay.snap-hold-retention-v2 .snap-hold-ropes{ gap:4px; }
    #holdOverlay.snap-hold-retention-v2 .snap-hold-rope-label{ font-size:10px; }
}
@media(prefers-reduced-motion:reduce){
    #holdOverlay.snap-hold-retention-v2 .hold-card{ animation:none; }
    #holdOverlay.snap-hold-retention-v2 button{ transition:none; }
}
