@font-face{font-family:Nunito;src:url('./nunito-latin.woff2') format('woff2');font-style:normal;font-weight:400 900;font-display:swap}
@font-face{font-family:Barlow;src:url('./barlow-bold.woff2') format('woff2');font-style:normal;font-weight:800;font-display:swap}
:root{--page:#eaf1ec;--ink:#293f48;--muted:#71827f;--coral:#ef5b51;--mint:#b5ccc0;--road:#7c9290;--line:#c3cfbf;--board-size:min(calc(100vw - 76px),364px,calc(100svh - 330px));font-family:Nunito,'Arial Rounded MT Bold',Arial,sans-serif;color:var(--ink);background:var(--page);font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0;min-width:280px;min-height:100svh;background:radial-gradient(ellipse at 50% 42%,#f9fbf6 0,transparent 62%),var(--page);-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #276a87;outline-offset:5px}button{border:0}button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}.game{width:min(100%,460px);margin:0 auto;min-height:100svh;padding: max(21px,env(safe-area-inset-top)) 24px max(15px,env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:center}.brand-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:35px}.wordmark{font-family:Barlow,Impact,'Arial Narrow',sans-serif;font-weight:800;font-size:36px;line-height:1;letter-spacing:-1px;color:var(--ink);text-decoration:none;position:relative;display:inline-block;transform:skew(-6deg)}.wordmark>span{color:var(--coral);margin-left:1px}.wordmark>i{position:absolute;width:25px;height:4px;bottom:-6px;left:2px;border-radius:3px;background:var(--coral)}.icon-button{width:42px;height:42px;border-radius:50%;background:transparent;display:grid;place-items:center;color:#718782;border:1px solid #d1ddd5}.sound-button[aria-pressed=true]{background:#dae7df;color:var(--ink)}.play-area{position:relative}.level-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 1px}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:800;color:var(--muted)}h1{font-size:23px;margin:5px 0 0;line-height:1.15;letter-spacing:-.6px;font-weight:900}#difficulty{font-size:13px;font-weight:700;letter-spacing:0;color:#6c817c}.level-dot{display:inline-block;color:#a7b8ae;margin:0 8px;font-size:17px}.moves-stat{display:flex;align-items:center;gap:10px;flex-direction:column;line-height:1;min-width:43px}.moves-stat strong{font-size:31px;letter-spacing:-1px;font-weight:800;font-variant-numeric:tabular-nums}.moves-stat .eyebrow{font-size:8px}.progress-track{margin-top:18px;height:4px;background:#d8e3da;border-radius:3px;overflow:hidden}.progress-track>span{height:100%;display:block;background:#92b5a4;border-radius:3px;min-width:12px;transition:width .4s}.objective-row{display:flex;align-items:center;gap:8px;margin:20px 0 18px}.objective-row p{margin:0;font-size:14px;font-weight:600;letter-spacing:-.2px}.target-dot{height:9px;width:9px;border-radius:3px;background:var(--coral);box-shadow:0 2px 0 #bd453f}.par{margin-left:auto;display:flex;align-items:center;gap:4px;color:#768880;font-size:10px;font-weight:700;white-space:nowrap}.par svg{width:14px;height:14px;stroke:#93a491;stroke-width:1.5;fill:none}.scene{width:calc(var(--board-size) + 28px);height:calc(var(--board-size) + 54px);position:relative;margin:0 auto;padding-top:27px;padding-left:4px;isolation:isolate}.lot-frame{position:relative;width:var(--board-size);height:var(--board-size);border-radius:10px;background:#c9d4c5;box-shadow:0 9px 0 #aebcaf,0 11px 0 #90a59a,0 19px 24px -13px #4f726b66,0 0 0 7px #d3ddd0;z-index:2}.board{position:relative;isolation:isolate;width:100%;height:100%;border:5px solid #aabcae;border-radius:9px;background:var(--road);box-shadow:inset 0 3px 7px #324c4f33;touch-action:none;user-select:none;-webkit-user-select:none;container-type:inline-size}.parking-grid{position:absolute;inset:0;opacity:.38;background-image:linear-gradient(to right,transparent calc(100% - 1px),#e0e8d3 1px),linear-gradient(to bottom,transparent calc(100% - 1px),#e0e8d3 1px);background-size:calc(100% / 6) calc(100% / 6);border-radius:4px;overflow:hidden}.parking-grid:after{content:'';position:absolute;inset:3%;background-image:radial-gradient(#ecf1dc 1.3px,transparent 1.3px);background-size:calc(100% / 5) calc(100% / 5);opacity:.5}.exit-lane{position:absolute;left:0;right:-9px;top:calc(100% / 3);height:calc(100% / 6);background:#bfd0b922;pointer-events:none}.exit-lane:after{content:'';position:absolute;right:-7px;top:0;bottom:0;width:7px;background:var(--road);z-index:2}.cars{position:absolute;inset:0;z-index:3}.car{position:absolute;background:none;padding:0;border:0;touch-action:none;outline:none;cursor:grab;transform:translate(var(--x),var(--y));left:0;top:0;transition:transform .17s cubic-bezier(.2,.7,.25,1);-webkit-user-select:none;user-select:none;will-change:transform;z-index:2}.car-art{position:absolute;inset:0;pointer-events:none;filter:drop-shadow(0 3px 1px #293f4845);transition:filter .15s}.car-art svg{width:100%;height:100%;display:block;overflow:visible}.car.vertical .car-art{height:var(--short);width:var(--long);top:calc((var(--long) - var(--short)) / 2);left:calc((var(--short) - var(--long)) / 2);transform:rotate(90deg)}.car.dragging{cursor:grabbing;transition:none;z-index:10}.car.dragging .car-art{filter:drop-shadow(0 6px 3px #203c4c66);scale:1.025}.car:focus-visible{outline:none;z-index:8}.car:focus-visible:after,.car.hinted:after{content:'';position:absolute;inset:2px;border:2px dashed #ffffe4;border-radius:10px;pointer-events:none}.car.hinted .car-art{filter:drop-shadow(0 0 5px #fff4be)}.car.exiting{z-index:20;transition:transform .48s cubic-bezier(.3,0,.4,1),opacity .15s .33s;opacity:0}.car.shake{animation:nudge .25s}.top-curb{position:absolute;top:0;left:5px;right:25px;height:19px;display:flex;align-items:center;gap:13px;color:#8c9f90}.top-curb>span{font-size:8px;font-weight:900;letter-spacing:1.4px}.top-curb>i{height:1px;background:#c1d0c2;flex:1}.top-curb>.lot-number{font-size:7px;letter-spacing:1px}.bottom-curb{position:absolute;bottom:0;left:6px;right:27px;height:13px;display:flex;align-items:center;gap:8px}.bottom-curb>span{height:3px;flex:1;background:#c6d4c6;border-radius:2px}.bottom-curb>i{width:24px;height:5px;background:repeating-linear-gradient(120deg,#90a69a 0 3px,transparent 3px 6px);opacity:.6}.exit-road{position:absolute;top:calc(27px + 5px + (var(--board-size) - 10px) / 3);left:calc(var(--board-size) + 4px);height:calc((var(--board-size) - 10px) / 6);width:34px;background:#adbfab;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;border-radius:0 4px 4px 0;box-shadow:0 2px 0 #8dA18e}.exit-arrow{font:900 23px/1 Nunito,sans-serif;color:#f3f7dc;transform:translateX(1px)}.exit-label{font-size:7px;font-weight:900;letter-spacing:1px;color:#f7f9e9}.gate-top,.gate-bottom{position:absolute;width:10px;right:-7px;height:12px;background:repeating-linear-gradient(-35deg,#f2e3ac 0 4px,#526c63 4px 8px);border:1px solid #80958a;border-radius:2px;z-index:8;pointer-events:none}.gate-top{top:calc(100% / 3 - 6px)}.gate-bottom{top:calc(100% / 2 - 5px)}.garden{position:absolute;z-index:0;display:flex;gap:0;opacity:.75}.garden i{width:15px;height:19px;background:#9cbba3;border-radius:45% 50% 40% 45%;box-shadow:inset 2px 1px 0 #bad0b6,1px 3px 0 #88a894;transform:rotate(30deg)}.garden i:nth-child(2){width:20px;transform:translateY(-4px) rotate(-30deg);background:#a6c2a8}.garden-top{top:24px;right:7px;transform:rotate(90deg);transform-origin:right}.garden-bottom{bottom:27px;left:-8px;transform:rotate(-28deg)}.status-line{min-height:41px;margin:17px -10px 8px;text-align:center;font-size:12px;font-weight:700;color:#788b81;display:flex;align-items:center;justify-content:center;gap:7px;line-height:1.45}.status-line svg{width:17px;height:17px;fill:none;stroke:#8ca594;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.status-line.hint-status{color:#3d7665}.controls{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.control{display:flex;justify-content:center;align-items:center;gap:8px;background:#f6f8f1;border:1px solid #d4dfd3;border-radius:13px;height:52px;font-size:12px;font-weight:800;box-shadow:0 3px 0 #ccd9cc;transition:transform .12s,box-shadow .12s,background .12s}.control svg{width:20px;height:20px}.control:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 #ccd9cc}.control:disabled{color:#a6b4ab;background:#e7eee5;box-shadow:0 3px 0 #d5e0d3}.hint-control{background:#f6e9ba;border-color:#e2d7ac;box-shadow:0 3px 0 #d9c995;color:#685a37}.hint-control:active:not(:disabled){box-shadow:0 1px 0 #d9c995}.game-footer{display:flex;align-items:center;gap:13px;margin-top:33px;font-size:8px;font-weight:800;letter-spacing:1.35px;color:#8ca094;white-space:nowrap}.footer-rule{height:1px;flex:1;background:#cfdcd0}.hint-marker{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:25;font-size:29px;font-weight:900;line-height:1;color:#fffdf1;text-shadow:0 2px 5px #243e42;animation:hintPulse .85s ease-in-out infinite alternate}.celebration{position:absolute;inset:12px -9px -9px;z-index:50;display:grid;place-items:center;background:#e9f1e9b8;backdrop-filter:blur(5px);border-radius:18px;animation:fadeIn .25s ease}.win-card{width:min(91%,305px);padding:24px 22px 17px;background:#fafbf4;border:1px solid #fff;border-radius:21px;text-align:center;box-shadow:0 12px 40px #294b4430;position:relative;z-index:1;outline:none;animation:popIn .4s cubic-bezier(.2,.8,.3,1.2)}.win-kicker{color:#7a9685;font-size:9px;font-weight:900;letter-spacing:2px}.stars{display:flex;justify-content:center;gap:6px;margin:12px 0 7px}.stars svg{height:33px;width:33px;fill:#e9eddf;stroke:#d3dbca;stroke-width:1.3;filter:drop-shadow(0 2px 0 #e4e8da)}.stars svg.earned{fill:#f3c753;stroke:#d9ac3f;filter:drop-shadow(0 2px 0 #d9ac3f)}.stars svg:nth-child(2){transform:translateY(-5px);height:39px;width:39px}.win-card h2{font-size:32px;letter-spacing:-1px;line-height:1.1;margin:8px 0 9px;font-weight:900}.win-card p{font-size:12px;color:#7a8c80;line-height:1.5;margin:0}.win-stats{display:flex;justify-content:center;gap:19px;font-size:11px;color:#7d8e81;margin:16px 0}.win-stats>span+span{border-left:1px solid #d9e2d5;padding-left:19px}.win-stats strong{color:#354e48;font-size:16px;font-weight:900}.next-button{width:100%;height:47px;border-radius:12px;background:#ef5b51;color:white;box-shadow:0 4px 0 #cb4843;font-size:14px;font-weight:900;display:flex;align-items:center;justify-content:space-between;padding:0 18px}.next-button:active{transform:translateY(2px);box-shadow:0 2px 0 #cb4843}.next-button span{font-size:24px;font-weight:600}.replay-button{background:none;padding:16px 4px 0;font-size:10px;color:#809086;font-weight:800;text-decoration:underline;text-underline-offset:3px}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti i{position:absolute;top:-10px;left:var(--left);height:9px;width:5px;border-radius:1px;background:var(--color);animation:confetti 1.8s var(--delay) ease-in both}.load-error{position:fixed;inset:30%;background:white;border-radius:12px;padding:30px;z-index:99}.scene.entering .car{animation:carAppear .3s ease-out both;animation-delay:var(--delay)}
@keyframes hintPulse{to{opacity:.55;scale:1.12}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes popIn{from{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:none}}@keyframes confetti{to{transform:translateY(420px) rotate(360deg);opacity:0}}@keyframes carAppear{from{opacity:0}to{opacity:1}}@keyframes nudge{50%{filter:brightness(1.15)}}
@media(hover:hover){.control:not(:disabled):hover{background:#fffdf4}.hint-control:hover{background:#fff0bc!important}.icon-button:hover{background:#dae7df}.car:hover .car-art{filter:drop-shadow(0 4px 2px #293f4860)}}
@media(min-width:700px){body{background:radial-gradient(ellipse at center,#f8faf4 0,#e4ece6 85%)}.game{min-height:100svh;padding-left:24px;padding-right:24px}.brand-row{margin-bottom:39px}}
@media(max-height:740px){:root{--board-size:min(calc(100vw - 76px),344px,calc(100svh - 290px))}.game{padding-top:max(13px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}.brand-row{margin-bottom:22px}.wordmark{font-size:31px}.objective-row{margin-top:15px;margin-bottom:12px}.game-footer{margin-top:23px}.status-line{margin-top:14px;margin-bottom:6px;min-height:32px}.control{height:47px}.progress-track{margin-top:12px}}
@media(max-height:620px){:root{--board-size:min(calc(100vw - 64px),300px,calc(100svh - 232px))}.game{padding-top:10px;padding-bottom:10px}.brand-row{margin-bottom:12px}.wordmark{font-size:27px}.icon-button{height:34px;width:34px}.level-info>.eyebrow{display:none}.level-row h1{font-size:21px}.moves-stat{flex-direction:row;gap:8px}.moves-stat strong{font-size:25px}.game-footer{display:none}.objective-row{margin-top:11px;margin-bottom:9px}.status-line{font-size:11px;margin-top:11px}.control{height:44px}.win-card{padding:14px 19px 10px}.stars{margin:10px 0 4px}.win-card h2{font-size:25px}.win-card p{display:none}.win-stats{margin:10px 0}.next-button{height:42px}.replay-button{padding-top:13px}}
@media(max-width:359px){.game{padding-left:19px;padding-right:19px}#difficulty{font-size:11px}.level-dot{margin:0 5px}.par{font-size:9px}.control{gap:6px}.game-footer{font-size:7px;letter-spacing:1px}.objective-row p{font-size:13px}}
@media(orientation:landscape) and (max-height:520px){:root{--board-size:280px}.game{min-height:580px;width:430px}.game-footer{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.exit-road{padding-left:7px}
.car-art svg{stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter}
