/* Police adventures. All selectors are isolated from the original game. */
.ps-shell{max-width:900px;margin:auto;min-height:100dvh;background:radial-gradient(ellipse at 50% 0,#257ece,#102f63 65%);color:#fff;padding:14px 16px calc(24px + env(safe-area-inset-bottom));font-weight:750}.ps-shell button{color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ps-top{display:flex;align-items:center;gap:8px;margin-bottom:15px}.ps-top .ps-name{flex:1}.ps-name small,.ps-eyebrow{display:block;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#a9d8ff;margin-bottom:3px}.ps-name b{font-size:17px}.ps-round{flex-shrink:0;width:44px;height:44px;border-radius:16px;background:#ffffff15;border:1px solid #ffffff36;font-size:19px}.ps-round:active{transform:scale(.93)}.ps-title{font-size:clamp(23px,5vw,34px);letter-spacing:-.8px;margin:8px 0 12px}.ps-sub{color:#c6e2ff;font-size:14px;font-weight:500;line-height:1.6}.ps-maphero{display:flex;align-items:center;gap:20px;padding:18px 0}.ps-maphero img{width:94px;height:114px;object-fit:cover;object-position:top;border:3px solid #ffda78;border-radius:28px;box-shadow:0 12px 22px #001c4150}.ps-list{display:grid;gap:13px;margin:16px 0}.ps-card{display:grid;grid-template-columns:72px 1fr 24px;gap:14px;align-items:center;text-align:left;padding:16px;border:1px solid #ffffff40;border-radius:24px;background:linear-gradient(135deg,#ffffff23,#ffffff0b);box-shadow:0 7px 0 #061f4b66;min-height:112px}.ps-card:not(:disabled):hover{background:#ffffff28}.ps-card:disabled{opacity:.55;cursor:default}.ps-card .ps-emblem{font-size:38px;display:grid;place-items:center;width:70px;height:70px;border-radius:23px;background:linear-gradient(140deg,#fce59d,#efb842);box-shadow:inset 0 2px 2px #fff9,0 6px 12px #0002}.ps-card b{font-size:18px;display:block;line-height:1.2}.ps-card small{display:block;font-size:12px;color:#bcdcff;margin-top:6px;font-weight:500}.ps-card .ps-num{font-size:10px;color:#ffe59b;letter-spacing:1.3px;margin-bottom:5px}.ps-scene{position:relative;border:1px solid #a5d9ff66;border-radius:27px;overflow:hidden;height:min(52dvh,470px);min-height:290px;background:#81b3d1;box-shadow:0 12px 28px #00132e66;isolation:isolate}.ps-scene canvas{display:block;width:100%;height:100%;touch-action:none}.ps-chip{position:absolute;left:14px;top:14px;background:#0b244ac9;border:1px solid #ffffff25;border-radius:20px;padding:8px 12px;font-size:11px;letter-spacing:.6px;pointer-events:none;backdrop-filter:blur(8px)}.ps-scene-progress{position:absolute;bottom:14px;left:20px;right:20px;height:7px;border-radius:10px;background:#092a4677;overflow:hidden;pointer-events:none}.ps-scene-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#ffe486,#79f0bc);transition:width .18s}.ps-targets{position:absolute;inset:0;pointer-events:none}.ps-target{position:absolute;width:60px;height:60px;transform:translate(-50%,-50%);border:0;border-radius:50%;pointer-events:auto;background:transparent;color:transparent!important;cursor:pointer}.ps-target:focus-visible,.ps-target.ps-glow{outline:3px solid #ffe582;box-shadow:0 0 0 9px #ffe58233,0 0 25px #ffe582bb;background:#ffe58220}.ps-target span{display:none;position:absolute;top:58px;left:50%;transform:translateX(-50%);background:#09264bef;border-radius:12px;white-space:nowrap;color:white;font-size:12px;padding:7px 10px}.ps-target:focus-visible span,.ps-target.ps-glow span{display:block}.ps-story{display:flex;gap:12px;align-items:center;margin:16px 0 12px;background:#fff3d9;color:#183358;border:2px solid #ffe3a1;border-radius:23px;padding:14px;min-height:93px;box-shadow:0 6px 0 #061f4b55}.ps-story img{width:52px;height:58px;object-fit:cover;object-position:top;border-radius:16px;flex-shrink:0}.ps-story small{font-size:10px;letter-spacing:1px;color:#47749b;display:block;margin-bottom:5px}.ps-story p{font-size:15px;line-height:1.4;margin:0}.ps-tools{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;margin:12px 0}.ps-tool,.ps-primary,.ps-secondary{border:1px solid #b6e0ff6b;border-radius:19px;min-height:58px;font-size:14px;font-weight:850;padding:12px 16px;background:linear-gradient(#3e9be9,#1766ad);box-shadow:0 5px 0 #082d5b;transition:transform .15s}.ps-tool{flex:1;min-width:85px;max-width:200px}.ps-tool i{font-style:normal;font-size:26px;display:block;margin-bottom:4px}.ps-primary{background:linear-gradient(#ffeaa0,#f8c64d);border:2px solid #fff1b8;color:#18365b!important;width:100%;font-size:17px}.ps-secondary{background:#ffffff0d;box-shadow:none;min-height:46px;font-size:13px}.ps-tool:active,.ps-primary:active{transform:translateY(3px)}.ps-tool.selected{border:2px solid #ffe084;background:#328278}.ps-footer{display:flex;justify-content:space-between;gap:10px;margin-top:16px}.ps-dots{display:flex;gap:6px;margin:0 0 12px}.ps-dots i{height:5px;border-radius:5px;flex:1;background:#ffffff22}.ps-dots i.done{background:#82e6c0}.ps-dots i.now{background:#ffe18a}.ps-toast{min-height:20px;font-size:12px;text-align:center;color:#ffebae;font-weight:550;margin:10px 0}.ps-curtain{position:absolute;inset:0;background:#071b3de8;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;backdrop-filter:blur(6px)}.ps-curtain h2{font-size:28px;margin:8px}.ps-curtain p{font-size:15px;line-height:1.5;color:#d7e9fc;max-width:390px}.ps-curtain .ps-primary{max-width:310px}.ps-trophy{font-size:55px;animation:ps-bob 2s ease-in-out infinite}.ps-result{background:#122f61f0}.ps-small{font-size:11px;color:#b5d9ef;text-align:center;font-weight:500}.ps-aim{position:absolute;border:2px solid #fff8;border-radius:50%;width:44px;height:44px;pointer-events:none;transform:translate(-50%,-50%);display:none}.ps-aim:after{content:'+';position:absolute;inset:0;display:grid;place-items:center;color:white;font-size:22px}.ps-flashshade{position:absolute;inset:0;pointer-events:none;background:#020714d9}.ps-lane .ps-tool{font-size:25px}.ps-shell :focus-visible{outline:3px solid #ffe084;outline-offset:3px}.ps-phone{animation:ps-bob .8s ease-in-out infinite}@keyframes ps-bob{50%{transform:translateY(-7px) rotate(3deg)}}@media(min-width:700px){.ps-shell{padding:22px 32px 30px}.ps-list{grid-template-columns:1fr 1fr}.ps-card:first-child{grid-column:1/-1}.ps-scene{height:480px;max-height:60dvh}.ps-story p{font-size:17px}}@media(max-width:370px){.ps-shell{padding-left:10px;padding-right:10px}.ps-tool{padding:10px 8px;font-size:12px}.ps-round{width:40px;height:40px}.ps-story p{font-size:14px}.ps-scene{min-height:260px}}@media(prefers-reduced-motion:reduce){.ps-trophy,.ps-phone{animation:none}.ps-shell *{scroll-behavior:auto!important}}

.ps-emblem svg{width:45px;height:45px;color:#725421}.ps-tool i svg{width:29px;height:29px;display:block;margin:auto}.ps-tool i{min-height:31px}
@media(max-height:740px) and (max-width:699px){.ps-scene{height:38dvh;min-height:220px}.ps-top{margin-bottom:10px}.ps-title{margin:5px 0 9px}.ps-story{margin-top:12px;padding:10px;min-height:76px}.ps-story p{font-size:13px}.ps-story img{width:42px;height:50px}.ps-tools{margin:10px 0}.ps-tool{min-height:52px;padding:8px}.ps-footer{margin-top:9px}}

.ps-tool[data-act="power"]{background:linear-gradient(#ffeaa0,#f8c64d);border:2px solid #fff1b8;color:#18365b;max-width:none}
/* Adventures 20: physical object cards, legible touch targets and rhythm cues. */
.ps-tool i{height:73px;display:grid;place-items:center;margin-bottom:3px}.ps-tool i img{width:90px;height:90px;object-fit:contain;filter:drop-shadow(0 5px 5px #0a2f4655);margin-top:-10px;pointer-events:none}.ps-tool{background:linear-gradient(145deg,#f8f2dc,#d1dce0);color:#244158!important;border:2px solid #e5e4d6;text-shadow:none;min-height:105px;box-shadow:0 5px 0 #082d5b}.ps-tool.selected{background:linear-gradient(#c3ddd0,#82ada3);border-color:#f5ddb2}.ps-tool:disabled{opacity:.4;pointer-events:none}.ps-tool[data-act="left"],.ps-tool[data-act="right"],.ps-tool[data-act="jump"],.ps-tool[data-act="turn"],.ps-tool[data-act="confirm"],.ps-tool[data-act="repeat"]{min-height:58px}.ps-tool[data-act="left"] i,.ps-tool[data-act="right"] i,.ps-tool[data-act="jump"] i,.ps-tool[data-act="turn"] i,.ps-tool[data-act="confirm"] i,.ps-tool[data-act="repeat"] i{height:30px}.ps-swatch{width:40px;height:40px;border-radius:50%;box-shadow:inset 0 6px 7px #ffffff66,inset 0 -6px 8px #182b4933,0 5px 9px #17385644}.ps-note{transform:translateY(-4px) scale(1.04)!important;box-shadow:0 0 0 4px #fff0a8,0 0 24px #f1d97e!important;filter:brightness(1.3)}.ps-target{touch-action:none}.ps-target:active{background:#fff3;box-shadow:0 0 0 4px #e2e9bb55}.ps-trophy svg{width:64px;height:64px;color:#f1dcac}.ps-tools{align-items:stretch}.ps-scene{height:min(47dvh,470px)}.ps-tool[data-act="shield"]{max-width:150px}.ps-story img{object-position:50% 10%}@media(max-height:740px) and (max-width:699px){.ps-scene{height:34dvh;min-height:210px}.ps-tool{min-height:83px}.ps-tool i{height:54px}.ps-tool i img{width:72px;height:72px}.ps-story p{font-size:12px}}
.ps-voice{max-width:100%;width:280px;min-height:46px;border-radius:12px;margin:8px 0 18px;font:inherit;padding:10px}.ps-footer{flex-wrap:wrap}.ps-footer .ps-secondary{flex:1;padding:10px 8px;font-size:12px;white-space:nowrap}
.ps-portrait{width:52px;height:58px;overflow:hidden;border-radius:16px;flex-shrink:0}.ps-story .ps-portrait img{width:100%;height:100%;transform:scale(2.35);transform-origin:50% 15%;border-radius:0}.ps-shell .ps-footer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.ps-shell .ps-footer .ps-secondary{white-space:normal;padding:9px 4px;font-size:11px}.ps-shell .ps-footer:has([data-ui="map"]){grid-template-columns:1fr 1fr}@media(max-height:740px) and (max-width:699px){.ps-portrait{width:42px;height:50px}}
.ps-emblem img{width:70px;height:70px;object-fit:contain}

/* v20 movable hero + cinematic intro */
.ps-intro-art{width:min(100%,430px);max-height:205px;object-fit:cover;border-radius:22px;border:2px solid #ffe09b;box-shadow:0 12px 28px #0006;margin:0 auto 10px;display:block}
.ps-move-pad{position:absolute;left:12px;bottom:28px;z-index:4;display:grid;grid-template-columns:40px 40px 40px;grid-template-rows:40px 40px 40px;gap:3px;opacity:.9;pointer-events:none}
.ps-move-pad button{pointer-events:auto;width:40px;height:40px;border:1px solid #ffffff99;border-radius:13px;background:#102d5dcc;color:#fff;font-size:18px;font-weight:1000;backdrop-filter:blur(5px);box-shadow:0 3px 8px #0005;padding:0;min-height:0}
.ps-move-pad button:active{transform:scale(.92);background:#2b6fb8e8}
.ps-move-up{grid-column:2;grid-row:1}.ps-move-left{grid-column:1;grid-row:2}.ps-move-center{grid-column:2;grid-row:2;opacity:.65}.ps-move-right{grid-column:3;grid-row:2}.ps-move-down{grid-column:2;grid-row:3}
.ps-target{width:72px;height:72px;z-index:3}
.ps-story{position:relative;z-index:2}
.ps-dress-card{border-color:#ffe18a!important;background:linear-gradient(135deg,#fff3bd33,#ffbf4a22)!important}
.ps-dress-card .ps-emblem img{width:64px;height:64px;object-fit:cover;border-radius:18px}
@media(max-width:420px){.ps-move-pad{left:8px;bottom:22px;transform:scale(.88);transform-origin:left bottom}.ps-intro-art{max-height:165px}}

/* v21 usability: movable hero + unobstructed targets */
.ps-target{width:84px;height:84px;z-index:6}
.ps-target.ps-glow,.ps-target:focus-visible{background:#ffe5822b;box-shadow:0 0 0 10px #ffe58230,0 0 30px #ffe582cc}
.ps-move-pad{z-index:7;opacity:.96}
.ps-move-pad button{width:44px;height:44px;font-size:20px;background:#0c3269e8;border:2px solid #ffffffbb}
@media(max-width:420px){.ps-move-pad{transform:scale(.94);transform-origin:left bottom}.ps-target{width:78px;height:78px}}
