/* 기존 게임에는 영향 없는 퍼즐 놀이터 전용 스타일. */
body.p50-game{--p50-color:#245cb2;background:var(--sp-bg);color:var(--sp-ink)}
.p50-game .sp-btn,.p50-game .sp-seg-btn{min-height:48px}.p50-game .sp-top button{min-width:48px;min-height:48px}
.p50-game .sp-stage{padding:12px;overflow:auto}.p50-game .sp-btn-primary,.p50-primary{background:#b74832!important;color:white!important;border-color:#b74832!important}
.p50-preview{border:2px solid #dceaf9;border-radius:24px;padding:24px;background:#f2f7fc;display:flex;flex-direction:column;gap:16px;justify-content:center}.p50-preview h2,.p50-preview p{margin:0}.p50-preview a{color:#245cb2;font-weight:800}.p50-hero{font-size:64px}.p50-root{max-width:1440px;margin:auto;min-width:0;display:flex;flex-direction:column;gap:12px}
.p50-banner{background:#fff1d6;border-radius:18px;padding:12px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:16px}.p50-banner strong{font-size:20px}.p50-time{margin-left:auto;white-space:nowrap;font:800 24px var(--sp-font-num)}
.p50-lanes{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;min-width:0}.is-duel .p50-lanes{grid-template-columns:repeat(2,minmax(0,1fr))}.p50-lane{background:#fff;border:2px solid #c6d8f0;border-radius:24px;padding:16px;min-width:0;display:flex;flex-direction:column;gap:12px}.is-duel .p50-lane:nth-child(2){border-color:#e5bdcb}
.p50-lanehead{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:16px}.p50-lanehead strong{font-size:20px;color:#245cb2}.is-duel .p50-lane:nth-child(2) .p50-lanehead strong{color:#9f2e56}.p50-lanehead b{margin-left:auto;font:800 24px var(--sp-font-num)}
.p50-prompt{font-size:clamp(22px,2.2vw,30px);line-height:1.35;margin:0;font-weight:800}.p50-rule{font-size:16px;line-height:1.65;margin:0}.p50-play{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:0;padding:8px 0}.p50-play>p{margin:0}.p50-readout{padding:10px 14px;border-radius:12px;background:#edf4fb;color:#24466e;font-size:18px;font-weight:800;text-align:center;line-height:1.6;max-width:100%;overflow-wrap:anywhere}
.p50-board-scroll{max-width:100%;width:100%;overflow:auto;padding:4px;scrollbar-width:thin;text-align:center}.p50-grid{--cols:4;display:grid;grid-template-columns:repeat(var(--cols),minmax(48px,64px));gap:8px;width:max-content;margin:0 auto}.p50-cell{width:64px;min-width:48px;min-height:56px;border:2px solid #a8bcae;border-radius:12px;background:#f6f9f3;color:#26332f;font:800 22px/1.2 var(--sp-font-num);white-space:pre-line;padding:4px;touch-action:manipulation;cursor:pointer}
.p50-button{min-width:48px;min-height:48px;border:2px solid #a9bcb1;background:white;border-radius:14px;padding:10px 14px;font:700 16px/1.5 var(--sp-font-body);color:#26332f;white-space:pre-line;cursor:pointer;touch-action:manipulation}
.p50-button:hover,.p50-cell:hover{border-color:#245cb2;background:#eaf2fb}.p50-cell:disabled{opacity:1;cursor:default}.p50-button:disabled{opacity:.5;cursor:default}.p50-button.is-on,.p50-cell.is-on,.p50-cell.is-selected{background:#245cb2;color:#fff;border-color:#163e7a}.p50-cell.is-filled{background:#dceaf9;color:#173b67}.p50-cell.is-red{background:#fbe4e7;border-color:#ad354d;color:#7e2133}.p50-cell.is-fixed{background:#e6ede8;border-color:#7a8f81}.p50-cell.is-wall{background:#43574c;color:#fff;border-color:#43574c}.p50-cell.is-goal{border:3px dashed #087567;background:#e3f6ec}.p50-cell.is-lit{background:#f3cc59;color:#473304;border-color:#907018}.p50-cell.is-pipe{font-size:32px;line-height:1;color:#245cb2}.p50-cell.is-chocolate{background:#8a482b;color:#fff;border-color:#69351d}.p50-cell.box-edge{border-right:4px solid #4b6658;border-bottom:4px solid #4b6658}
.p50-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;max-width:100%}.p50-directions{display:grid;grid-template-columns:repeat(4,56px);gap:8px}.p50-directions button{font-size:28px}.p50-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.p50-actions .sp-btn{padding:10px 14px;font-size:16px;flex:1 0 auto}
.p50-status{padding:10px 12px;border-radius:12px;background:#edf6ec;color:#235837;font-size:16px;line-height:1.6}.p50-status.is-bad{background:#fff1e9;color:#80351b}.p50-hint{padding:12px;border-radius:12px;background:#fff1d6;font-size:16px;line-height:1.65}.p50-hint[hidden]{display:none}.p50-hint p{margin:0 0 8px}.p50-hint ol{max-height:200px;overflow:auto}.p50-hint summary,.p50-play summary{min-height:48px;padding:12px;cursor:pointer;font-weight:800}.p50-small{font-size:16px}.p50-clues{font-size:16px;line-height:1.7;margin:0;padding-left:24px}.p50-clue-summary{align-self:stretch;background:#fff1d6;border-radius:12px;padding:8px 12px;font-size:16px}.p50-clue-summary p{margin:4px 0}
.p50-target{display:flex;align-items:center;gap:12px;background:#f4f7f2;border-radius:12px;padding:8px}.p50-mini{display:grid;grid-template-columns:repeat(var(--cols),24px);gap:3px}.p50-mini span{height:24px;text-align:center;font-size:16px;background:white;border-radius:4px}.p50-mini .is-lit{background:#f3cc59}.p50-piece-preview{display:grid;grid-template-columns:repeat(var(--cols),22px);gap:3px}.p50-piece-preview span{height:22px;border-radius:3px}.p50-piece-preview .is-filled{background:#245cb2}.p50-piece-row{display:flex;align-items:center;gap:16px}
.p50-cups{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;max-width:100%}.p50-cup{min-width:68px;min-height:180px;border:3px solid #a9bcb1;border-radius:10px 10px 24px 24px;background:#f2f6ef;color:#26332f;padding:8px;cursor:pointer}.p50-cup.is-on{outline:3px solid #245cb2;outline-offset:2px}.p50-stack{display:flex;flex-direction:column;gap:8px;align-items:center;padding-top:8px}.p50-ball{display:block;background:#e2e9e2;width:48px;min-height:28px;border-radius:10px;text-align:center;font:bold 18px var(--sp-font-num)}
.p50-itemcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;max-width:650px}.p50-itemcards button{min-height:96px}.p50-trainrow{padding:12px;border-radius:12px;background:#f0f5ec;width:100%;display:flex;gap:16px;flex-wrap:wrap;font-size:18px}.p50-river{display:grid;grid-template-columns:1fr 1fr;gap:32px;width:100%;max-width:600px;background:#dceaf9;border-radius:24px;padding:12px}.p50-river>div{background:#e7f4df;border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:12px;font-size:18px}.p50-mobile{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:100%}.p50-stones{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;font-size:32px;color:#7950b1;max-width:500px}.p50-done{padding:48px 24px;text-align:center}
.p50-graph{width:min(100%,340px);aspect-ratio:1;position:relative;min-width:260px}.p50-graph svg{width:100%;height:100%}.p50-node{position:absolute;transform:translate(-50%,-50%);width:48px;height:48px;border:2px solid #8ca697;border-radius:50%;background:#fff;font:bold 18px var(--sp-font-num);cursor:pointer}.p50-node.is-on{background:#245cb2;color:white;outline:3px solid #f3cc59}
.p50-matches{display:flex;align-items:center;justify-content:center;gap:8px;max-width:100%;padding:12px}.p50-digit{position:relative;width:84px;height:164px;flex-shrink:0}.p50-match{position:absolute;border:none;border-radius:8px;background:#dce5df;cursor:pointer;padding:0;touch-action:manipulation}.p50-match:before{content:'';position:absolute;inset:-8px;border:1px solid #9baea0;border-radius:8px}.p50-match.is-on{background:#b54d28;box-shadow:inset -5px 0 #e89364}.p50-match.is-on:after{content:'';position:absolute;background:#773422;border-radius:50%;width:9px;height:9px;top:1px;left:1px}.p50-operator{font-size:26px}.p50-sticks{width:100%;display:flex;flex-direction:column;align-items:center;gap:16px}.p50-stick-map{width:min(100%,300px);aspect-ratio:1}.p50-stick-map svg{width:100%;height:100%}
.color-0{background:#245cb2!important;color:#fff!important}.color-1{background:#b53f68!important;color:#fff!important}.color-2{background:#087567!important;color:#fff!important}.color-3{background:#7950b1!important;color:#fff!important}.color-4{background:#b54d28!important;color:#fff!important}
.p50-game button:focus-visible,.p50-game a:focus-visible,.p50-game summary:focus-visible{outline:3px solid #087567;outline-offset:3px}
@media(min-width:961px){.p50-game .sp-stage{overflow:hidden}.p50-root{height:100%}.p50-banner{flex-shrink:0}.p50-lanes{flex:1;min-height:0}.p50-lane{min-height:0;overflow:hidden}.p50-play{flex:1;min-height:0;overflow:auto}.p50-lanehead,.p50-prompt,.p50-rule,.p50-status,.p50-actions{flex-shrink:0}.p50-hint{max-height:35%;overflow:auto}}
@media(max-width:760px){.p50-cell{width:48px;font-size:18px}.p50-lane{padding:12px}.p50-banner{padding:12px}.p50-stage{padding:8px}.p50-graph{min-width:220px}.p50-matches{transform-origin:center;gap:4px}.p50-operator{font-size:22px}}
@media(max-width:600px){.is-duel .p50-lanes{grid-template-columns:minmax(0,1fr)}.p50-game .sp-stage{padding:8px}.p50-banner span{flex-basis:100%}.p50-actions .sp-btn{flex-basis:calc(50% - 8px)}.p50-prompt{font-size:22px}.p50-matches{gap:2px;padding:8px 0}.p50-digit{width:78px}.p50-preview{padding:16px}}
.p50-grid{grid-template-columns:repeat(var(--cols),64px)}.p50-cell{position:relative}.p50-cell.box-right{border-right:4px solid #4b6658}.p50-cell.box-bottom{border-bottom:4px solid #4b6658}
.p50-button,.p50-cup,.p50-node{border-color:#718b79}.p50-cell:not(.is-on):not(.is-selected):not(.is-red):not(.is-wall):not(.is-goal):not(.is-fixed):not(.is-lit):not(.is-chocolate){border-color:#718b79}
.p50-directions,.p50-drive-controls{position:sticky;top:0;z-index:4;background:#fff;padding:8px 0;flex-shrink:0}
.p50-inequality{position:absolute;z-index:2;background:#fff8e9;color:#26332f;font-size:16px;line-height:1;width:12px;text-align:center;pointer-events:none}.p50-inequality.right{right:-12px;top:50%;transform:translateY(-50%)}.p50-inequality.bottom{bottom:-12px;left:50%;transform:translateX(-50%)}
.p50-grid-with-clues{width:max-content;margin:auto}.p50-grid-colclues{display:grid;grid-template-columns:40px repeat(var(--cols),64px);gap:8px;margin-bottom:8px;font-size:16px;font-weight:800}.p50-grid-colclues span{min-height:32px;display:grid;place-items:center;max-width:64px;overflow-wrap:anywhere}.p50-grid-clueline{display:flex;gap:8px}.p50-grid-clueline .p50-grid{margin:0}.p50-grid-rowclues{display:flex;flex-direction:column;gap:8px;font-size:16px;font-weight:800;width:40px}.p50-grid-rowclues span{height:56px;display:grid;place-items:center;overflow-wrap:anywhere}
@media(max-width:760px){.p50-grid{grid-template-columns:repeat(var(--cols),48px)}.p50-cell{min-height:48px}.p50-grid-rowclues span{height:48px}.p50-grid-colclues{grid-template-columns:40px repeat(var(--cols),48px)}}
@media(min-width:601px) and (max-width:960px){.is-duel .p50-grid{grid-template-columns:repeat(var(--cols),48px)}.is-duel .p50-cell{width:48px;min-height:48px;font-size:18px}.is-duel .p50-grid-colclues{grid-template-columns:40px repeat(var(--cols),48px)}.is-duel .p50-grid-rowclues span{height:48px}}
@media(max-width:600px){.p50-banner{display:none}.p50-actions{position:sticky;bottom:0;background:#fff;padding:8px 0;z-index:5}.p50-cell.is-pipe{font-size:24px}}
@media(prefers-reduced-motion:reduce){.p50-game *, .p50-game *:before,.p50-game *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
