@font-face{font-family:Outfit;src:url(/fonts/Outfit-variable.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}*{box-sizing:border-box}:root{font-family:Outfit,Segoe UI,sans-serif;color:#173f3b;background:#e7eee8;font-synthesis:none;-webkit-tap-highlight-color:transparent;--cream:#fafaf3;--muted:#52716a;--copper:#168273;--surface:#f9faf4;--teal:#08776a;--ease:cubic-bezier(.16,1,.3,1);--hud-shadow:0 3px 12px #214f3c17;--control-radius:12px}body{margin:0;overflow:hidden;overscroll-behavior:none}button{font:inherit;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;transition:background .16s,color .16s,transform .16s var(--ease)}button:focus-visible{outline:3px solid #08776a;outline-offset:3px}button:active:not(:disabled){transform:translateY(2px)}button:disabled{cursor:default}#app{height:100dvh;width:100%;margin:auto;background:#e7eee8;position:relative;isolation:isolate;overflow:hidden}header{position:absolute;z-index:5;left:50%;top:env(safe-area-inset-top,0px);transform:translate(-50%);width:min(100%,520px);height:58px;display:flex;align-items:center;justify-content:space-between;padding:8px 14px 6px;gap:10px;pointer-events:none}header button{pointer-events:auto}.heading{display:flex;align-items:center;justify-content:center;gap:12px;min-width:0;flex:1}h1{font-size:17px;line-height:1.08;font-weight:650;letter-spacing:-.025em;margin:0;color:#173f3b;max-width:106px;text-align:left}#level-title{background:#e5f1e9;border:0;color:var(--teal);font-weight:650;font-size:14px;line-height:1.15;padding:6px 11px;min-height:44px;min-width:66px;white-space:nowrap;border-radius:12px}.round{width:44px;height:44px;flex-shrink:0;border-radius:12px;border:0;background:#fafaf3f5;color:#244e46;display:grid;place-items:center;box-shadow:var(--hud-shadow)}.round svg{height:21px;width:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.progress{position:absolute;z-index:4;top:calc(58px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);width:min(calc(100% - 32px),360px);display:flex;justify-content:center;align-items:center;gap:10px;height:18px;pointer-events:none}#progress-dots{display:flex;gap:0;align-items:center;flex:1;height:5px;border-radius:3px;overflow:hidden;background:#b9cfc4;max-width:220px}#progress-dots i{display:none}#progress-dots:before{content:"";width:100%;height:100%;background:var(--teal);transform:scaleX(var(--progress,0));transform-origin:left;transition:transform .35s var(--ease)}#progress-copy{font-size:12px;font-weight:550;color:#365e53;font-variant-numeric:tabular-nums;white-space:nowrap}#stage{position:absolute;inset:0;min-height:0;touch-action:none;user-select:none;-webkit-user-select:none}canvas{display:block;width:100%;height:100%;touch-action:none}#cart-labels,#bay-labels{position:absolute;inset:0;pointer-events:none;z-index:2}#dock-status{position:absolute;z-index:3;left:50%;top:40%;transform:translate(-50%,-100%);border-radius:6px;padding:3px 9px;background:#fafaf3ed;color:#28564b;font-size:11px;font-weight:550;line-height:1.4;white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums}.cart-hit{position:absolute;border:0;background:transparent;transform:translate(-50%,-50%);pointer-events:auto;color:#183744;padding:0;display:flex;justify-content:center}.cart-hit:active:not(:disabled){transform:translate(-50%,-50%)}.cart-hit span{display:none}.cart-hit.in-bay{pointer-events:none}.cart-hit.in-bay span{display:block;position:absolute;top:-15px;padding:2px 6px;min-width:28px;border-radius:5px;background:#244e46;color:#fffef5;font-size:13px;font-weight:650;line-height:18px;font-variant-numeric:tabular-nums;box-shadow:0 2px 5px #173f3b20}.bay-number{position:absolute;transform:translate(-50%,-50%);color:#fafff5;font-size:12px;font-weight:600;text-shadow:0 1px 2px #173f3b}footer{position:absolute;z-index:5;bottom:env(safe-area-inset-bottom,0px);left:50%;transform:translate(-50%);width:min(100%,520px);padding:0 12px 10px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:44px 48px;gap:6px;text-align:center;pointer-events:none}footer p{font-size:12px;line-height:1.3;height:44px;min-height:44px;margin:0;display:flex;align-items:center;justify-content:center;color:#244e46;text-wrap:balance;padding:4px 12px;background:#fafaf3ed;border-radius:var(--control-radius)}#hint.warning{color:#8a391d;font-weight:600;background:#fff0df}#speed{pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:4px;width:94px;flex:0 0 94px;min-height:48px;border:0;border-radius:var(--control-radius);padding:6px 9px;background:#245d51;color:#fffdf1;font-size:13px;font-weight:550;touch-action:none;box-shadow:var(--hud-shadow)}#speed svg{display:none}#speed span{max-width:72px;line-height:1.2;text-wrap:balance}#speed.holding{background:#075a4f;color:#fff;transform:translateY(1px)}.tools{grid-column:1/-1;display:flex;align-items:stretch;justify-content:center;gap:6px;pointer-events:auto}.tool{position:relative;flex:1;min-width:44px;min-height:48px;border:0;border-radius:12px;background:#fafaf3f5;color:#244e46;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:3px 4px;box-shadow:var(--hud-shadow)}.tool svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tool span{font-size:12px;font-weight:550}.tool b{position:absolute;right:3px;top:2px;min-width:13px;height:13px;border-radius:4px;background:#dceee2;color:#2e6455;font-size:10px;font-weight:650;line-height:13px}.tool:disabled,.tool[aria-disabled=true]{color:#667b70;background:#e6ece3f5;box-shadow:none}.tool:disabled b,.tool[aria-disabled=true] b{background:#d7e1d6;color:#567063}.tool.spent b{background:transparent;color:#667b70}.tool[aria-disabled=true]:active{transform:none}.tools .round{width:44px;height:48px;margin-left:0}#loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:20px;font-weight:550;color:#244e46;background:#e7eee8;z-index:9;text-align:center;padding:25px}#loading span{margin-top:20px;width:30px;height:30px;border:2px solid #bed5c7;border-top-color:#08776a;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{border:0;border-radius:16px;padding:35px 24px 24px;background:#fafaf3;color:#173f3b;max-width:370px;width:calc(100% - 32px);max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 18px 60px #10392b35;text-align:center}dialog::backdrop{background:#12372d9e}dialog h2{font-size:30px;font-weight:650;letter-spacing:-.03em;line-height:1.08;margin:7px 0 12px;text-wrap:balance}dialog p{font-size:14px;line-height:1.5;color:#527166;margin:0 0 22px;text-wrap:balance}.close{position:absolute;right:5px;top:4px;border:0;background:transparent;color:#527166;font-size:27px;width:44px;height:44px;padding:0}.close[hidden]{display:none}.primary,.secondary{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:48px;padding:12px 15px;border:0;border-radius:12px;font-size:15px;font-weight:550;margin-top:10px;line-height:1.3}.primary{background:#08776a;color:#fff}.secondary{background:#e2ece1;color:#315d4d}.primary small,.secondary small{font-size:12px;font-weight:400;line-height:1.4;margin-top:4px;opacity:.9}.success-seal{width:74px;height:74px;margin:1px auto 18px;border-radius:50%;background:#dceee0;color:#08776a;display:grid;place-items:center;font-size:35px}.success-seal svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.result-count{display:block;font-size:17px;font-weight:600;color:#315d4d;margin-bottom:7px;font-variant-numeric:tabular-nums}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0 8px}.level-grid button{position:relative;min-height:49px;border:0;border-radius:10px;background:#e6ede2;color:#315d4d;font-weight:550;font-size:18px;font-variant-numeric:tabular-nums}.level-grid .finished{background:#dcebdd;color:#31584b}.level-grid small{position:absolute;right:6px;top:5px;font-size:10px;line-height:1}.level-grid .current{background:#08776a;color:#fff}.page-controls{display:flex;justify-content:space-between;align-items:center;font-size:13px;gap:10px;color:#527166;font-variant-numeric:tabular-nums}.page-controls button{border:0;background:none;color:#28655c;padding:10px;min-height:44px;min-width:44px;font-weight:550}.page-controls button:disabled{color:#768a7d}.recovery-options{display:grid;gap:0}.recovery-options .primary+.primary{background:#e2ece1;color:#315d4d}.text-button{border:0;background:transparent;color:#28655c;min-height:44px;padding:10px 14px;font-weight:550;font-size:14px;text-decoration:underline;text-underline-offset:3px}.eyebrow{display:none}::selection{background:#b4dcc9;color:#173f3b}*{scrollbar-color:#87ad98 #edf2e8;scrollbar-width:thin}@media(hover:hover){.round:hover,.tool:hover:not(:disabled){background:#e0eddf}.primary:hover,#speed:hover{background:#08675b}.secondary:hover,.level-grid button:hover{background:#d4e3d0}.level-grid .current:hover{background:#08675b}.page-controls button:hover:not(:disabled){background:#e2ece1;border-radius:8px}}@media(max-width:350px){header{padding-left:10px;padding-right:10px;gap:6px}.heading{gap:7px}h1{font-size:15px;max-width:93px}#level-title{font-size:13px;min-width:59px;padding:6px 8px}footer{padding-left:8px;padding-right:8px;column-gap:4px}.tools{gap:4px}.tool{gap:1px}.tool svg{width:17px}#speed{width:88px;flex-basis:88px;font-size:12px}.tools .round{width:44px}dialog{padding-left:20px;padding-right:20px}}@media(orientation:landscape)and (max-height:550px){header{left:max(10px,env(safe-area-inset-left));top:env(safe-area-inset-top,0px);transform:none;width:220px;padding:8px 0}.heading{justify-content:flex-start}.heading h1{display:none}.progress{left:auto;right:max(14px,env(safe-area-inset-right));top:18px;transform:none;width:190px}footer{width:180px;left:auto;right:env(safe-area-inset-right,0px);transform:none;bottom:env(safe-area-inset-bottom,0px);padding:0 10px 10px;display:flex;flex-direction:column;gap:7px}footer p{font-size:12px;height:auto;min-height:44px}.tools{display:grid;grid-template-columns:1fr 1fr;gap:7px}.tool{min-height:48px}.tools .round{width:100%;height:48px;margin:0}#speed{grid-column:1/-1;width:100%;flex-basis:auto;min-height:44px}#speed span{max-width:none}#speed svg{display:block;width:16px;height:16px;fill:currentColor}#dock-status{font-size:10px}}@media(prefers-reduced-motion:reduce){button,#progress-dots:before{transition:none}#loading span{animation:none}}
