@font-face{font-family:Pixel;src:url('/assets/fonts/pixel.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--cream:#faf3dd;--paper:#fff9e9;--ink:#2d493a;--muted:#7b826b;--green:#426448;--coral:#df825d;--line:#dedec3;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible+span,canvas:focus-visible{outline:3px solid var(--coral);outline-offset:5px}[hidden]{display:none!important}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.icon{width:22px;height:22px;flex-shrink:0;vertical-align:middle}#garden{position:fixed;inset:0;width:100%;height:100%;height:100dvh;image-rendering:pixelated;touch-action:none;outline:none}
.menu-shell{position:fixed;inset:0;z-index:1;overflow:auto;display:flex;flex-direction:column;background:linear-gradient(180deg,rgba(250,243,221,.98) 0%,rgba(250,243,221,.97) 72%,rgba(250,243,221,.83) 100%);padding:max(25px,env(safe-area-inset-top)) max(40px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(40px,env(safe-area-inset-left))}
.menu-header{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1280px;margin:0 auto}.brand{text-decoration:none;display:flex;gap:13px;align-items:center;color:var(--ink);font-family:Pixel,monospace;font-size:14px;line-height:1.7}.brand>.icon{color:var(--coral);width:28px;height:28px}.brand-dot{color:var(--coral)}.header-actions{display:flex;gap:10px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:2px solid var(--line);background:rgba(255,249,233,.8);box-shadow:2px 2px 0 #dedec3}.icon-button:hover{background:#fffdf3;border-color:var(--green)}
.menu-main{width:100%;max-width:960px;margin:auto;text-align:center;padding:32px 0 20px}.eyebrow{font-family:Pixel,monospace;font-size:8px;line-height:1.9;letter-spacing:1px;color:var(--muted);margin:0 0 18px}h1{font-family:Pixel,monospace;font-size:29px;line-height:1.65;letter-spacing:-1px;margin:0}h1 span{color:var(--coral)}.intro{font-size:16px;color:var(--muted);margin:13px 0 28px}
.pet-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:790px;margin:0 auto 30px}.pet-card{position:relative;display:flex;align-items:center;flex-direction:column;border:2px solid var(--line);background:rgba(255,249,233,.75);box-shadow:4px 4px 0 #dedec3;padding:12px 12px 18px;transition:background .12s,border-color .12s}.pet-card:hover{border-color:#9cae86;background:#fffbee}.pet-card.selected{border-color:var(--green);box-shadow:4px 4px 0 var(--green);background:#f0f0d6}.selection-mark{position:absolute;right:10px;top:10px;width:20px;height:20px;background:var(--green);color:var(--paper);display:none;align-items:center;justify-content:center}.selection-mark .icon{width:12px;height:12px}.selected .selection-mark{display:flex}.pet-preview{width:144px;height:144px;max-width:100%;image-rendering:pixelated}.pet-name{font-family:Pixel,monospace;font-size:12px;line-height:1.8;margin:4px 0 7px}.pet-species{font-size:12px;color:var(--muted);white-space:nowrap}.pet-best{font-family:Pixel,monospace;font-size:7px;line-height:2;color:var(--muted);margin-top:17px}.pet-best b{font-weight:400;color:var(--ink);padding-left:8px}
.difficulty{border:0;padding:0;margin:0}.difficulty legend{display:block;float:none;width:100%;font-family:Pixel,monospace;font-size:7px;letter-spacing:.6px;margin-bottom:13px;color:var(--muted)}.difficulty-options{display:flex;gap:6px;justify-content:center}.difficulty label{position:relative}.difficulty input{position:absolute;opacity:0;width:1px;height:1px}.difficulty label span{display:block;min-width:104px;padding:11px 15px;border:2px solid var(--line);background:var(--paper);font-size:13px;cursor:pointer}.difficulty input:checked+span{border-color:var(--green);background:var(--green);color:var(--paper)}.difficulty-hint{color:var(--muted);font-size:12px;margin:12px 0 23px}.button{display:flex;gap:16px;align-items:center;justify-content:center;min-height:52px;padding:15px 20px;font-family:Pixel,monospace;font-size:10px;line-height:1.7;border:2px solid var(--ink);width:100%}.primary{background:var(--green);color:var(--paper);box-shadow:4px 4px 0 #263e2e}.primary:hover{background:#527951}.primary:active{transform:translate(2px,2px);box-shadow:2px 2px 0 #263e2e}.button .icon{width:18px;height:18px}.play-button{max-width:325px;margin:0 auto}.selected-caption{font-size:12px;color:var(--muted);margin:16px 0 0}.status{font-size:12px;line-height:1.5;color:var(--muted);margin:12px 0 0}.menu-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:1280px;width:100%;margin:16px auto 0;font-size:11px;color:var(--muted)}kbd{font:8px Pixel,monospace;border:1px solid #c5c9ad;padding:5px 6px;background:#fff8e6;margin-right:5px}.controller-connected{color:var(--green)}
.hud{position:fixed;z-index:3;top:0;left:0;right:0;padding:max(22px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 0 max(24px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;pointer-events:none}.hearts{display:flex;gap:6px;filter:drop-shadow(2px 2px 0 #fff9e9)}.hearts .icon{width:23px;height:23px;color:#da785b}.hearts .lost{color:#78958b;opacity:.45}.run-score{position:absolute;left:50%;transform:translateX(-50%);font-family:Pixel,monospace;font-size:30px;color:#fff9e9;text-shadow:3px 3px 0 #2d493a,-2px -2px 0 #2d493a,2px -2px 0 #2d493a,-2px 2px 0 #2d493a}.pause-button{pointer-events:auto;background:#fff9e9dd;border-color:#4d684b;width:42px;height:42px;box-shadow:3px 3px 0 #4d684b}.pause-button .icon{width:17px;height:17px}
.game-overlay{position:fixed;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom));background:#163e3440;overflow:auto}.panel{background:var(--paper);border:3px solid var(--ink);box-shadow:7px 7px 0 #2d493a7a;padding:30px;width:min(100%,420px);text-align:center;max-height:100%;overflow:auto}.panel-paw{color:var(--coral);width:34px;height:34px;margin-bottom:20px}.panel .eyebrow{font-size:7px;letter-spacing:.1px;margin-bottom:14px}h2{font-family:Pixel,monospace;font-size:15px;line-height:1.8;margin:0 0 15px}.panel-copy{font-size:14px;line-height:1.7;color:#718068;margin:12px 0 23px}.panel .button{font-size:9px;margin-top:12px}.secondary{background:transparent;box-shadow:3px 3px 0 #d5d7ba;border-color:#b5bda0}.secondary:hover{background:#efefd7}.text-button{display:block;margin:18px auto 0;border:0;background:none;font-size:13px;text-decoration:underline;text-underline-offset:4px;min-height:30px}.pause-settings{display:flex;gap:12px;justify-content:center;border-top:1px solid var(--line);margin-top:21px;padding-top:15px}.small-button{background:none;border:0;display:flex;gap:8px;align-items:center;font-size:12px;min-height:34px}.small-button .icon{width:16px;height:16px}.panel-hint{font-size:10px;color:var(--muted);margin:15px 0 0}.result-panel{width:min(100%,435px)}.result-panel h2{font-size:14px}.result-pet{font-size:12px;color:var(--muted);margin:0 0 20px}.result-score{display:block;font-family:Pixel,monospace;font-size:48px;line-height:1.3;color:var(--green);margin-bottom:10px}.score-caption{font:7px/2 Pixel,monospace;color:var(--muted)}.result-stats{display:flex;justify-content:space-between;gap:12px;font:6px/2 Pixel,monospace;margin:20px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.result-stats b{display:block;font-size:15px;font-weight:400;color:var(--ink);margin-top:6px}.result-panel .panel-copy{font-size:12px}.help-panel{position:relative;padding-top:45px;width:min(calc(100% - 36px),450px)}.help-panel::backdrop{background:#163e3488}.close-help{position:absolute;right:12px;top:10px;width:30px;height:30px;border:0;box-shadow:none;background:none}.close-help .icon{width:16px;height:16px}.controls-list{font-size:12px;text-align:left;line-height:1.6}.controls-list>div{display:flex;gap:15px;padding:9px 0;border-top:1px solid var(--line)}.controls-list dt{min-width:75px;font-weight:bold}.controls-list dd{margin:0;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-height:900px) and (min-width:700px){.menu-main{padding-top:45px;padding-bottom:45px}.intro{margin-bottom:36px}.pet-card{padding-top:20px;padding-bottom:24px}.pet-options{margin-bottom:36px}.pet-preview{width:164px;height:164px}}
@media(max-width:650px){.menu-shell{padding:20px 18px 18px}.brand{font-size:10px;gap:9px}.brand>.icon{width:22px;height:22px}.header-actions{gap:8px}.icon-button{width:36px;height:36px}.header-actions .icon{width:17px;height:17px}.menu-main{padding-top:35px;padding-bottom:20px}.eyebrow{font-size:6px;letter-spacing:.3px;margin-bottom:18px}h1{font-size:21px;letter-spacing:-.5px}.intro{font-size:14px;margin:13px 0 24px}.pet-options{gap:9px;margin-bottom:28px}.pet-card{padding:9px 3px 13px;box-shadow:3px 3px 0 #dedec3}.pet-card.selected{box-shadow:3px 3px 0 var(--green)}.pet-preview{width:108px;height:auto;aspect-ratio:1}.pet-name{font-size:8px;margin:5px 0 7px}.pet-species{font-size:9px;line-height:1.5;min-height:27px;display:flex;align-items:center;justify-content:center;white-space:normal;padding:0 3px}.pet-best{font-size:6px;margin-top:10px}.pet-best b{padding-left:2px}.selection-mark{width:16px;height:16px;top:6px;right:6px}.selection-mark .icon{width:9px;height:9px}.difficulty legend{font-size:6px}.difficulty label span{min-width:88px;font-size:12px;padding:10px 13px}.difficulty-hint{font-size:11px;margin-bottom:22px}.play-button{max-width:282px}.menu-footer{flex-direction:column;gap:17px;font-size:10px;margin-top:10px}.panel{padding:26px 21px;max-width:365px}.panel h2{font-size:14px}.hud{padding-left:18px;padding-right:18px}.hearts{gap:4px}.hearts .icon{width:18px;height:18px}.run-score{font-size:25px}.pause-button{width:37px;height:37px}.result-panel h2{font-size:12px}}
@media(max-width:360px){h1{font-size:18px}.pet-name{font-size:6px}.pet-species{font-size:8px}.brand{font-size:9px}.menu-shell{padding-left:13px;padding-right:13px}.pet-best{font-size:5px}.pet-options{gap:8px}.difficulty label span{min-width:80px}}
@media(max-height:520px) and (orientation:landscape){.panel{padding:20px;max-width:420px}.panel-paw,.panel-hint{display:none}.panel .eyebrow{margin-bottom:8px}h2{font-size:12px;margin-bottom:8px}.panel-copy{margin:6px 0 10px;font-size:12px}.panel .button{min-height:40px;padding:9px}.text-button{margin-top:10px}.pause-settings{margin-top:12px;padding-top:8px}.result-score{font-size:30px;margin-bottom:2px}.result-pet{margin-bottom:8px}.result-stats{margin:9px 0;padding:8px 0}.result-panel h2{font-size:12px}.result-panel .panel-copy{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(min-width:651px) and (max-height:800px){.menu-main{padding-top:20px;padding-bottom:10px}h1{font-size:23px}.menu-main>.eyebrow{margin-bottom:12px;font-size:7px}.intro{margin:8px 0 20px;font-size:14px}.pet-preview{width:112px;height:112px}.pet-card{padding:8px 10px 13px}.pet-options{max-width:690px;margin-bottom:23px}.pet-name{font-size:10px}.pet-best{margin-top:11px}.difficulty-hint{margin-bottom:18px}.menu-footer{margin-top:12px}.menu-shell{padding-top:20px;padding-bottom:15px}.selected-caption{margin-top:14px}}
