/* Guitar Racer: six retro arcade lanes, no external assets required. */
.gpr-shell{max-width:1100px;margin:0 auto;padding:14px 16px 16px;border-radius:20px;color:#eff5ff;background:linear-gradient(170deg,#131e36,#0c1121);border:1px solid #41557b;box-shadow:0 8px 35px #0006}
.gpr-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.gpr-top h2{font-size:clamp(23px,3vw,29px);margin:0;color:#fff}.gpr-top p{font-size:12px;color:#bfcce2;margin:3px 0 9px}.gpr-top button{flex-shrink:0}.gpr-kicker{font-size:10px;letter-spacing:.17em;font-weight:850;color:#7dfad8;margin-bottom:5px}
.gpr-hud{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:7px;padding:10px;margin:0 0 6px;background:#17253b;border:1px solid #43506c;border-radius:10px;font-size:12px}.gpr-hud span{white-space:nowrap}.gpr-hud strong{font-size:14px;margin-left:5px;color:white}
.gpr-feedback{height:32px;display:flex;align-items:center;justify-content:center;letter-spacing:.02em;font-size:14px;font-weight:850;text-shadow:0 0 8px #111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#cbeaff}.gpr-feedback.good{color:#8ffcc0}.gpr-feedback.bad{color:#ff9090}
.gpr-road{position:relative;width:100%;height:clamp(340px,52vh,520px);border-radius:16px;border:3px solid #355174;overflow:hidden;background:#1b2f2b;box-shadow:inset 0 0 50px #0008}
.gpr-scenery{position:absolute;top:0;bottom:0;width:6%;background:repeating-linear-gradient(0deg,#356a5b 0 18px,#284c44 18px 40px);opacity:.65;z-index:1}.gpr-scenery.left{left:0}.gpr-scenery.right{right:0}
.gpr-road-surface{position:absolute;inset:0 6%;display:flex;overflow:hidden;background:linear-gradient(90deg,#28313c 0%,#343c46 50%,#28313c 100%);border-left:4px solid #e9ca59;border-right:4px solid #e9ca59}
.gpr-lane{position:relative;flex:1;min-width:0;box-sizing:border-box;border-right:3px dashed #e4ebf978;background:linear-gradient(90deg,#0002,transparent 45%,#fff1 52%,#0002);box-shadow:inset 0 0 18px #0002}.gpr-lane:last-of-type{border-right:0}.gpr-lane:after{content:'';position:absolute;left:0;right:0;top:0;height:100%;opacity:.35;border-top:3px solid var(--gpr-color);pointer-events:none}
.gpr-lane-name{position:absolute;top:8px;left:50%;transform:translateX(-50%);padding:3px 7px;border-radius:9px;color:var(--gpr-color);background:#071421ed;border:1px solid var(--gpr-color);font-size:clamp(12px,1.8vw,16px);font-weight:900;z-index:4;pointer-events:none}.gpr-lane-name small{display:block;text-align:center;font-size:9px;color:white}
.gpr-road-surface:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 38px,#ffffff11 38px 40px,transparent 40px 80px);pointer-events:none;z-index:1}
.gpr-obstacles{position:absolute;inset:0;pointer-events:none;z-index:5}.gpr-obstacle{position:absolute;display:flex;align-items:center;justify-content:center;width:14%;height:48px;font-size:clamp(27px,4vw,40px);filter:drop-shadow(0 4px 5px #000b);transform:translate(-50%,-50%);will-change:top}
.gpr-car{position:absolute;top:79%;left:41.6667%;transform:translate(-50%,-50%);transition:left .12s cubic-bezier(.25,.8,.2,1);z-index:7;width:min(65px,14%);height:78px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 7px 9px #0009);pointer-events:none}.gpr-car-svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 8px #fd565666)}
.gpr-treasure{position:absolute;display:grid;place-items:center;width:14%;height:44px;transform:translate(-50%,-50%);font-size:clamp(29px,4vw,39px);filter:drop-shadow(0 0 11px #ffe17baa);will-change:top;animation:gprTreasureGlow .85s ease-in-out infinite alternate}
.gpr-treasure-burst{position:absolute;top:72%;transform:translate(-50%,-50%);white-space:nowrap;color:#fff4ac;text-shadow:0 0 12px #ffe578,0 3px 7px #05080b;font-size:clamp(14px,2vw,20px);font-weight:1000;z-index:9;pointer-events:none;animation:gprTreasureBurst .75s ease-out forwards}
@keyframes gprTreasureGlow{to{filter:drop-shadow(0 0 20px #fff6a0) brightness(1.18)}}
@keyframes gprTreasureBurst{0%{opacity:0;transform:translate(-50%,-30%) scale(.7)}20%{opacity:1}100%{opacity:0;transform:translate(-50%,-145%) scale(1.2)}}
.gpr-car.gpr-damaged{animation:gprBlink .24s linear infinite}.gpr-road.gpr-shock{animation:gprShock .35s ease}
@keyframes gprBlink{0%,100%{opacity:1}50%{opacity:.22}}@keyframes gprShock{0%,100%{box-shadow:inset 0 0 40px #0008}25%,75%{box-shadow:inset 0 0 90px #ff3030a8}50%{box-shadow:inset 0 0 65px #ff7070a8}}
.gpr-pause-cover{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#070d1dd9;color:white;z-index:10;font-size:clamp(30px,5vw,48px);font-weight:1000;letter-spacing:.06em}.gpr-pause-cover small{font-size:13px;font-weight:600;letter-spacing:0;margin-top:10px}.gpr-pause-cover[hidden]{display:none}
.gpr-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:9px;font-size:12px;color:#cbd8ec}.gpr-controls>div{margin-right:auto}.gpr-controls button{font-size:12px}.gpr-audio{font-size:11px;color:#93e8d2;margin-top:4px}.gpr-keyboard{font-size:11px;color:#a8b5d0;margin:9px 2px 0}
@media(max-width:660px){.gpr-shell{padding:9px}.gpr-road{height:clamp(340px,53vh,490px)}.gpr-hud{gap:6px;font-size:11px;padding:6px}.gpr-hud strong{font-size:12px;margin-left:1px}.gpr-lane-name{padding:2px 4px}.gpr-obstacle{font-size:27px}.gpr-car{width:min(48px,14%);height:66px}.gpr-controls{align-items:stretch}.gpr-controls button{flex:1}}
@media(prefers-reduced-motion:reduce){.gpr-car{transition:none}.gpr-road.gpr-shock,.gpr-car.gpr-damaged,.gpr-treasure,.gpr-treasure-burst{animation:none}}

/* 4.15.4: skarby i przeszkody jako SVG inline */
.gpr-item-svg{display:block;width:min(54px,100%);height:55px;max-width:100%;overflow:visible;filter:drop-shadow(0 4px 5px #0008)}
.gpr-obstacle,.gpr-treasure{align-items:center;justify-content:center}.gpr-treasure{z-index:6}
@media(max-width:660px){.gpr-item-svg{width:40px;height:43px}}
