:root{color-scheme:light;--ink:#262a2c;--muted:#73787b;--line:#dfe2e2;--green:#36a88c;--yellow:#edbb42;--red:#e4665f}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font-family:Arial,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid #466c80;outline-offset:5px}[hidden]{display:none!important}.game{max-width:760px;margin:auto;padding:30px 32px 20px;min-height:100svh;display:flex;flex-direction:column}header{display:flex;align-items:center;justify-content:space-between}h1{font-size:34px;letter-spacing:-1.6px;margin:0;font-weight:700}h1 span{color:var(--red)}.settings-button{width:44px;height:44px;display:grid;place-items:center;border:0;background:none}.settings-button svg{width:25px;height:25px}.instructions{text-align:center;margin:35px 0 32px;font-size:17px;line-height:1.9}.instructions p{margin:4px 0}.instructions p+p{font-size:14px;color:var(--muted)}.scoreboard{display:flex;justify-content:center;gap:75px;font-variant-numeric:tabular-nums}.scoreboard>div{min-width:108px}.label{display:block;font-size:12px;color:var(--muted);margin-bottom:7px;letter-spacing:.08em}.scoreboard strong{font-size:36px;font-weight:400;letter-spacing:-1px}.unit{font-size:12px;margin-left:8px}.scene{position:relative;height:205px;margin:16px -32px 0;overflow:hidden;user-select:none}.traffic-light{position:absolute;left:58%;top:27px;display:flex;gap:9px;padding:12px;border:2px solid #363b3d;border-radius:15px;background:#262a2c;z-index:2}.lamp{display:block;width:28px;height:28px;border-radius:50%;background:#131617;box-shadow:inset 0 0 0 1px #45494b}.green.on{background:var(--green);box-shadow:none}.yellow.on{background:var(--yellow);box-shadow:none}.red.on{background:var(--red);box-shadow:none}.signal-post{position:absolute;left:calc(58% + 113px);top:80px;width:5px;height:90px;background:#b5babc}.road{position:absolute;left:0;right:0;top:116px;height:89px;border-top:2px solid #c6cbcc;border-bottom:2px solid #c6cbcc;background:#f7f8f8}.lane-mark{position:absolute;left:0;right:0;bottom:14px;border-bottom:2px dashed #daddde}.stop-line{position:absolute;left:58%;top:0;height:70px;border-left:4px solid #ccd0d1}.car{position:absolute;top:16px;width:65px;height:31px;background:#454e52;border-radius:8px 13px 5px 5px;transform:translateX(var(--shift,0px));z-index:2}.car:before{content:'';position:absolute;width:41px;height:20px;left:9px;top:-12px;background:inherit;clip-path:polygon(16% 0,72% 0,100% 100%,0 100%)}.car:after{content:'';position:absolute;left:9px;bottom:-6px;width:13px;height:13px;background:#fff;border:4px solid #2a3033;border-radius:50%;box-shadow:34px 0 0 -4px #fff,34px 0 0 0 #2a3033}.car span{position:absolute;top:-8px;left:20px;width:19px;height:9px;background:#d6e1e2;transform:skewX(18deg)}.waiting{left:calc(58% - 95px)}.queued{left:calc(58% - 200px);background:#aeb6b8}.car.passing{left:calc(58% - 75px);animation:pass 650ms linear forwards;z-index:3}@keyframes pass{to{transform:translateX(450px)}}.controls{text-align:center;padding-top:22px}.controls p{font-size:14px;color:var(--muted);min-height:20px;margin:0 0 16px}.primary,.drive,.secondary{display:block;width:240px;min-height:56px;border:1px solid var(--ink);border-radius:5px;margin:0 auto;background:var(--ink);color:white;font-size:16px;font-weight:500;text-decoration:none}.drive{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;background:#fff;color:var(--ink);box-shadow:0 4px 0 #dfe2e2}.drive.held{transform:translateY(3px);box-shadow:0 1px 0 #dfe2e2;background:#f1f3f3}.drive-icon{margin-right:12px}.controls .control-note{font-size:12px;margin-top:18px}footer{text-align:center;margin-top:auto;padding-top:32px;color:#93999b;font-size:11px;letter-spacing:.12em}dialog{width:min(420px,calc(100% - 32px));max-height:calc(100svh - 32px);border:1px solid var(--line);border-radius:10px;padding:26px;background:white;color:var(--ink);box-shadow:0 16px 64px #0002}dialog::backdrop{background:#1e24265c}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.dialog-heading h2{font-size:19px;margin:0}.close{border:0;background:none;width:36px;height:36px;font-size:28px;line-height:1}.volume-label{display:flex;justify-content:space-between;font-size:14px}#volume{width:100%;margin:20px 0 27px;accent-color:var(--ink)}.settings-links{border-top:1px solid var(--line)}.settings-links a{display:block;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;font-size:14px}.settings-links strong{font-weight:500}.settings-links span{display:block;color:var(--muted);font-size:12px;line-height:1.8;margin-top:8px}.settings-note{font-size:12px;line-height:1.8;color:var(--muted);margin:23px 0 0}#result{text-align:center}.eyebrow{font-size:12px;color:var(--muted);letter-spacing:.08em;margin:0}#result-title{font-size:30px;font-weight:500;letter-spacing:.08em;margin:8px 0 28px}#result.clear #result-title{color:#24836d}.result-label{font-size:13px;color:var(--muted);margin-bottom:8px}.result-score{margin:0;font-size:15px}.result-score strong{font-size:76px;font-weight:400;letter-spacing:-3px}#result-message{font-size:14px;line-height:1.8;margin:18px 0 30px;min-height:26px}.share{display:flex;align-items:center;justify-content:center;width:100%;font-size:14px}.secondary{background:white;color:var(--ink);border-color:var(--line);margin-top:12px;width:100%;font-size:14px}@media(max-width:480px){.game{padding:22px 22px 16px}h1{font-size:30px}.instructions{margin:32px 0 26px;font-size:16px}.scoreboard{gap:48px}.scoreboard strong{font-size:33px}.scene{margin-left:-22px;margin-right:-22px;height:192px}.traffic-light{left:55%;gap:7px;padding:10px;border-radius:12px}.lamp{width:23px;height:23px}.signal-post{left:calc(55% + 94px);top:74px}.stop-line{left:55%}.waiting{left:calc(55% - 88px)}.queued{left:calc(55% - 185px)}.car.passing{left:calc(55% - 70px)}.controls{padding-top:22px}footer{padding-top:28px}}@media(max-height:720px){.instructions{margin-top:20px;margin-bottom:18px}.scene{height:185px}.road{top:97px}.traffic-light{top:13px}.signal-post{top:60px;height:100px}.controls{padding-top:16px}footer{padding-top:18px}}@media(prefers-reduced-motion:reduce){.car.passing{animation-duration:1ms}.drive.held{transform:none}}
