@font-face{font-family:'Buddy Pixel';src:url('fonts/buddy-pixel.ttf') format('truetype');font-display:swap;font-weight:100 900}
:root{font-family:'Buddy Pixel',sans-serif;color:#232923;background:#f7f7f2}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,#stage:focus-visible{outline:3px solid #fb692f;outline-offset:5px}main{max-width:1280px;margin:auto;padding:42px 54px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:56px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;font-family:'Buddy Pixel',sans-serif;font-weight:700;letter-spacing:-.6px;font-size:24px}.brand-icon{font-size:23px;background:#ff6b32;color:white;width:38px;height:38px;display:grid;place-items:center;border-radius:11px;transform:rotate(-7deg)}.edition{font:500 11px 'Buddy Pixel',sans-serif;letter-spacing:1.7px;border-left:1px solid #d6d8cf;padding-left:20px;margin-left:10px;color:#74796f}#sound{background:none;border:1px solid #d5d8cf;border-radius:100px;padding:10px 17px;color:#596050;font-size:14px}.game-shell{border:1px solid #d6d9cf;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 12px 40px #323e2805}.topline{display:flex;justify-content:space-between;align-items:center;padding:26px 30px}.tag{font-size:12px;letter-spacing:1.8px;font-weight:700;color:#6b735f;display:flex;align-items:center;gap:9px}.tag i{width:7px;height:7px;background:#fd703a;border-radius:50%}.scores{display:flex;gap:30px;align-items:center}.scores div{display:flex;flex-direction:column;gap:6px}.scores span{font-size:10px;letter-spacing:1.5px;color:#84897e}.scores strong{font:600 26px 'Buddy Pixel',monospace;letter-spacing:2px}.scores div:first-child strong{color:#ef632d}#pause{background:#f4f5ef;border:0;border-radius:9px;width:38px;height:38px;font-size:22px}#pause:disabled{opacity:.4;cursor:default}#stage{height:460px;position:relative;overflow:hidden;touch-action:manipulation;outline:none}canvas{width:100%;height:100%;display:block}#buddy{position:absolute;left:9.5%;bottom:85px;width:150px;height:152px;overflow:hidden;transform-origin:50% 100%;pointer-events:none}#buddy-sprite{width:100%;height:100%;background-image:url("buddy-walk.png");background-repeat:no-repeat;background-size:1200% 100%;background-position:0% 0%}#overlay{position:absolute;top:70px;left:35%;right:8%;text-align:center}h1{font-family:'Buddy Pixel',sans-serif;font-size:60px;letter-spacing:-3px;margin:17px 0 12px;line-height:1.05}.eyebrow{font-size:11px;letter-spacing:2px;color:#89917f;font-weight:700}#message{font-size:17px;color:#777e6f;margin:0 0 25px}#play{background:#ff6d32;color:white;font-weight:700;border:0;border-radius:12px;padding:16px 25px;box-shadow:0 4px 0 #d84e1c;min-width:175px}#play:hover{background:#f15b23}#play span{margin-left:20px;font-size:12px}.start-hint{display:block;font-size:12px;color:#959b8d;margin-top:19px}.game-bottom{background:#f9faf6;border-top:1px solid #e4e6dc;padding:17px 30px;display:flex;justify-content:space-between;font-size:12px;color:#838b79}.game-bottom>span:first-child{display:flex;align-items:center;gap:8px}.orange-dot{width:6px;height:6px;border-radius:50%;background:#ff7438}#milestone{letter-spacing:1.6px;font-size:10px}footer{display:flex;justify-content:space-between;align-items:center;margin-top:24px;font-size:13px;color:#858c7e}.instructions{display:flex;gap:22px;align-items:center}.instructions>span{display:flex;gap:6px;align-items:center}kbd{border:1px solid #d6dacf;border-bottom-width:3px;border-radius:5px;padding:4px 7px;font:500 11px 'Buddy Pixel',sans-serif;background:#fff;color:#686f60}.footnote{font-style:italic;font-size:12px}.mobile-hint,.touch{display:none!important}#status{position:absolute;left:50%;top:28px;transform:translateX(-50%);color:#ef632d;font:700 17px 'Buddy Pixel',sans-serif} @media(min-width:1500px){main{padding-top:80px}}@media(max-width:700px){main{padding:24px 16px}header{margin-bottom:30px}.edition{display:none}.brand{font-size:20px}.topline{padding:20px 16px}.tag{font-size:10px;letter-spacing:.8px}.scores{gap:14px}.scores strong{font-size:20px}.scores span{font-size:8px;letter-spacing:.7px}#stage{height:420px}#buddy{width:110px;height:112px;left:6%;bottom:85px}#overlay{top:65px;left:23%;right:5%}h1{font-size:42px;letter-spacing:-2px}.eyebrow{font-size:9px;letter-spacing:1px}#message{font-size:14px}.game-bottom{padding:15px}.game-bottom #milestone{display:none}.instructions>span{display:none}.instructions .mobile-hint{display:block!important;font-size:12px}.footnote{display:none}.touch{display:flex!important;gap:12px;margin-top:20px}.touch button{width:50%;padding:16px;background:#fff;border:1px solid #d6d9cf;border-radius:10px;color:#596050}.touch #jump{background:#ff6d32;color:#fff;border:0}}

#buddy.jumping{overflow:visible}#buddy.jumping #buddy-sprite{position:absolute;width:120%;height:110.5263%;left:-10%;bottom:0;background-image:url("buddy-jump.png");background-size:800% 100%}

#buddy.dying{overflow:visible}#buddy.dying #buddy-sprite{position:absolute;width:136%;height:110.5263%;left:-18%;bottom:0;background-image:url("buddy-death.png");background-size:1300% 100%}

#buddy.ducking #buddy-sprite{position:absolute;width:100%;height:50%;left:0;bottom:0;background-image:url("buddy-duck.png");background-size:1100% 100%}

body.playing{touch-action:pan-x}#stage{touch-action:none}#duck{touch-action:none}

#overlay{background:#fffbf4ed;border:1px solid #ffffff99;border-radius:18px;padding:24px 18px;top:30px;box-shadow:0 8px 28px #30213c18}#overlay h1{font-size:48px}#play:disabled{opacity:.65;cursor:wait}#status{text-shadow:0 1px 3px #fff}@media(max-width:700px){#overlay{left:23%;right:4%;top:30px;padding:20px 12px}#overlay h1{font-size:34px}#overlay .eyebrow{font-size:8px}#overlay #message{font-size:13px}}

#buddy{opacity:0}

.penny-score strong{color:#bc6a30}@media(max-width:700px){.scores{gap:9px}.topline .tag{display:none}.topline{justify-content:flex-end}.scores .penny-score span{font-size:8px}}

#title-logo{display:none;width:100%;height:auto;object-fit:contain;max-height:230px;mix-blend-mode:normal}
#overlay.title-screen{top:18px;background:transparent;border:0;box-shadow:none;padding:12px 18px}
.title-screen #title-logo{display:block;margin:0 auto 16px}
.title-screen #heading,.title-screen #eyebrow,.title-screen #message{display:none}
.brand{font-size:19px}.brand .edition{display:none}
@media(max-width:700px){.brand{font-size:13px;gap:8px}.brand-icon{flex-shrink:0;width:30px;height:30px;font-size:19px}#sound{font-size:12px;padding:9px 11px;white-space:nowrap}#overlay.title-screen{left:28%;right:3%;top:16px;padding:8px}#title-logo{max-height:156px}.title-screen #play{min-width:140px;padding:12px 16px}.title-screen .start-hint{margin-top:14px}}

#revive{display:block;margin:12px auto 0;background:#ffd65e;color:#3c2c19;font-weight:700;border:1px solid #e3ac30;border-radius:12px;padding:13px 20px;min-width:175px;box-shadow:0 3px 0 #c78e29}#revive[hidden]{display:none}#revive:disabled{background:#eee8dc;border-color:#ddd4c4;color:#8b8377;box-shadow:none;cursor:default;font-size:12px}#revive:not(:disabled):hover{background:#ffe389}

/* Arcade lettering inspired by the supplied HUD reference. */
:root{font-size:16px}button{line-height:1.35}.brand{letter-spacing:0;font-size:18px}.scores span,.tag{color:#ffe526;text-shadow:1px 0 #26316e,-1px 0 #26316e,0 -1px #26316e,0 2px #26316e,2px 3px #121629;letter-spacing:.5px;font-size:12px}.scores strong,.scores div:first-child strong,.penny-score strong{color:#d9edf3;text-shadow:2px 0 #334973,-2px 0 #334973,0 -2px #334973,0 2px #334973,3px 4px #11151e;font-size:30px;letter-spacing:2px}.scores{gap:24px}#overlay h1{color:#ffe526;text-shadow:2px 0 #26316e,-2px 0 #26316e,0 -2px #26316e,0 2px #26316e,3px 4px #11151e;letter-spacing:0;font-size:34px;line-height:1.2}#message{line-height:1.6;font-size:15px}#status{color:#ffe526;text-shadow:1px 1px #26316e,-1px -1px #26316e,2px 3px #11151e;font-size:18px}.start-hint{line-height:1.5}#play,#revive{font-size:15px}#play{text-shadow:1px 2px #7c381c}.eyebrow{line-height:1.5}kbd{font-size:13px}.footnote{font-style:normal}.game-bottom{line-height:1.5}
@media(max-width:700px){.brand{font-size:12px}.scores{gap:10px}.scores strong{font-size:25px}.scores span,.scores .penny-score span{font-size:9px;letter-spacing:0}#overlay h1{font-size:26px}#overlay #message{font-size:12px;line-height:1.5}#overlay{padding:16px 12px}#play,#revive{font-size:13px;padding:12px 14px}.start-hint{font-size:10px}#status{font-size:14px;width:90%;text-align:center}.instructions .mobile-hint{font-size:11px}.game-bottom{font-size:11px}}

.rankings{margin-top:32px;padding:24px;border:2px solid #26316e;background:#f3f5ff;border-radius:14px}.ranking-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.rankings h2{margin:0;color:#ffe526;text-shadow:2px 2px #26316e,-1px -1px #26316e;font-size:28px}.ranking-intro,.rankings small{color:#4c526b;line-height:1.5}.rankings small{display:block;font-size:12px;margin-top:8px}.rankings button,.rankings input{font:inherit;font-size:16px;border:2px solid #26316e;border-radius:6px;padding:11px 14px}.rankings button{background:#ffe526;color:#222945;cursor:pointer}.rankings button:disabled{opacity:.6;cursor:wait}.rankings input{background:white;min-width:0;flex:1;text-transform:uppercase}.rankings label{display:block;margin:20px 0 10px}.player-edit{display:flex;gap:10px;max-width:530px}.rankings [hidden]{display:none!important}#your-ranking{color:#26316e;line-height:1.5;margin-top:24px}.ranking-table-wrap{overflow-x:auto}.rankings table{width:100%;border-collapse:collapse;text-align:left}.rankings th,.rankings td{padding:14px 10px;border-bottom:1px solid #c1c8df;font-size:16px}.rankings th{color:#26316e}.rankings th:last-child,.rankings td:last-child{text-align:right}.your-ranking{background:#fff0ab}#ranking-status{font-size:14px;line-height:1.5;color:#773b20}#ranking-signin{display:inline-block;margin-top:12px;color:#26316e}.rankings input:focus-visible{outline:3px solid #f77b35;outline-offset:3px}@media(max-width:700px){.rankings{padding:18px 12px}.rankings h2{font-size:23px}.ranking-heading{align-items:flex-start}.ranking-heading button{font-size:13px}.player-edit{flex-wrap:wrap}.player-edit input{width:100%}.rankings td,.rankings th{font-size:14px;padding:12px 5px}.rankings th:first-child{width:44px}.ranking-intro{font-size:14px}}

#ranking-open{display:block;margin:12px auto 0;padding:11px 18px;border:2px solid #26316e;border-radius:10px;background:#ffe526;color:#222945;font:inherit;font-size:14px;cursor:pointer}
#ranking-open[hidden]{display:none}
#ranking-dialog{box-sizing:border-box;width:min(680px,94vw);max-width:94vw;max-height:90vh;max-height:90dvh;padding:16px;border:2px solid #26316e;border-radius:14px;background:#f3f5ff;color:#222945;overflow:auto;overscroll-behavior:contain;touch-action:pan-y}
#ranking-dialog::backdrop{background:rgba(15,20,40,.72)}
#ranking-dialog .rankings{margin:0;padding:10px;border:0;border-radius:0}
#ranking-close{display:block;margin:0 0 12px auto;background:#26316e;color:white;border:0;border-radius:6px;padding:10px 16px;font:inherit;font-size:14px;cursor:pointer}
#ranking-dialog button:focus-visible{outline:3px solid #f77b35;outline-offset:3px}
@media(max-height:550px){#ranking-dialog{padding:10px}#ranking-dialog .rankings{padding:6px}#ranking-dialog .rankings h2{font-size:22px}#ranking-dialog .rankings label{margin-top:10px}#ranking-open{padding:8px 12px;margin-top:8px}#overlay:not(.title-screen){top:8px;padding:12px}#overlay:not(.title-screen) .start-hint{margin-top:8px}}
