:root{color-scheme:light;--ink:#494b35;--muted:#858775;--cream:#fbf7ed;--green:#637a48;--pink:#d98188;--gold:#edc462;font-family:ui-rounded,'SF Pro Rounded','Trebuchet MS',sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);-webkit-tap-highlight-color:transparent}button,a,input{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #916636;outline-offset:5px}button{border:0}button:disabled{cursor:default}a{color:inherit;text-decoration:none}.app{max-width:1320px;margin:auto;padding:0 5.2%;min-height:100svh;display:flex;flex-direction:column}header{height:103px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-size:29px;font-weight:900;letter-spacing:-1.5px;display:flex;align-items:center;gap:8px}.wordmark>svg{width:35px;height:39px;transform:rotate(-10deg)}.wordmark span{font-weight:400;color:#899271;margin-left:-8px}.header-right{display:flex;align-items:center;gap:13px}.edition{font-size:10px;letter-spacing:2px;margin-right:18px;color:#7c816b;font-weight:700}.icon-button{width:40px;height:40px;background:transparent;border:1px solid #dedfce;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.icon-button:hover{background:#eeeedf}.icon-button svg,.secondary svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}#sound[aria-pressed=true]{opacity:.5}.intro{text-align:center;margin:21px 0 29px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#7d8767}.eyebrow span{color:#c8a35b;margin-right:6px}h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(35px,4.7vw,62px);letter-spacing:-2.6px;margin:13px 0}h1 em{font-weight:400;color:var(--green)}.tagline{font-size:13px;color:#7c7d6c;margin:14px 0}.game{position:relative;width:100%;height:480px;border:1px solid #dce3cb;border-radius:24px;background:#eaf2d9;overflow:hidden;isolation:isolate;box-shadow:0 8px 0 -3px #ecebdc}#scene{display:block;width:100%;height:100%;touch-action:none}.game-top{position:absolute;z-index:2;left:31px;right:31px;top:23px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.label{display:block;font-size:9px;letter-spacing:1.7px;font-weight:700;color:#7e886b}.score-group strong,.best-group strong{display:block;font-family:Georgia,serif;font-size:34px;font-weight:400;margin-top:4px}.best-group{text-align:right}.best-group strong{font-size:25px;color:#7d8869}.jump-label{font-size:10px;letter-spacing:1px;background:#fff9e7ab;border:1px solid #fff8dd;padding:8px 13px;border-radius:30px;color:#7a8365;margin-top:5px}.welcome{position:absolute;z-index:3;top:24%;left:51%;text-align:center;width:44%;padding:0 15px}.pill{font-size:8px;letter-spacing:1.5px;font-weight:700;border:1px solid #bdcba6;padding:7px 10px;border-radius:20px;background:#f6f7df80}.welcome h2{font:400 28px/1.14 Georgia,serif;letter-spacing:-.9px;max-width:260px;margin:21px auto 11px}.welcome p{font-size:12px;line-height:1.7;color:#697453;margin:10px auto 18px}.primary{background:#566d40;color:#fffcee;border-radius:13px;padding:16px 23px;min-height:48px;font-weight:700;font-size:13px;box-shadow:0 4px 0 #3e542f;display:inline-flex;justify-content:center;align-items:center;gap:24px}.primary:hover{background:#647d4c;transform:translateY(-1px)}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #3e542f}.primary span{font-size:20px;line-height:16px;font-weight:400}.micro{font-size:10px;color:#737c60;display:block;margin:14px 0 0}.controls{position:absolute;bottom:0;left:0;right:0;height:89px;background:#fffbedec;z-index:4;border-top:1px solid #d8dfc7;display:flex;align-items:center}.move{background:transparent;width:50%;height:100%;display:flex;align-items:center;justify-content:center;gap:23px;text-align:left;user-select:none;-webkit-user-select:none}.move:hover{background:#ecefdc88}.move:active{background:#e4ead2}.control-copy{display:flex;flex-direction:column;gap:6px}.control-copy b{font-size:13px;font-weight:600}.control-copy small{font-size:10px;color:#7f836e}.keycap{border:1px solid #d6dcc6;border-bottom-width:3px;border-radius:8px;padding:8px 9px;font-size:16px;color:#727e60}.keycap span{font-size:9px;margin-left:4px}.hearts{color:#d5878e;font-size:14px;letter-spacing:1px}.control-divider{height:32px;width:1px;background:#dce0cf}.controls.teaching .keycap{animation:hint 1.8s ease-in-out infinite}.controls.teaching .right .keycap{animation-delay:.25s}@keyframes hint{50%{transform:translateY(-5px);box-shadow:0 5px 0 #d5ddbd55}}.under-game{margin:22px 3px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#858772;gap:10px}.status-dot{display:inline-block;width:6px;height:6px;background:#8d9c69;border-radius:50%;margin-right:7px}.dot{margin:0 10px}.text-button{background:none;font-size:10px;padding:0;color:#687754}.text-button span{margin-left:6px}footer{display:flex;justify-content:center;align-items:center;gap:17px;font-size:10px;color:#9b9b85;margin-top:auto;padding:23px 0 26px}.footer-heart{color:#b3ae8d;font-size:18px}.overlay{position:absolute;inset:0 0 89px;background:#eef1dfb8;backdrop-filter:blur(7px);z-index:8;display:flex;align-items:center;justify-content:center}.card{text-align:center;background:#fffbee;border:1px solid #e0dfca;border-radius:23px;padding:26px 35px;width:350px;max-width:92%;box-shadow:0 13px 40px #53633c16}.card h2,dialog h2{font:400 29px Georgia,serif;letter-spacing:-1px;margin:12px 0}.card p{font-size:11px;color:#798369;margin:10px 0 16px}.result-score{font:400 65px/1 Georgia,serif;color:var(--green);margin:14px}.card .primary{width:100%}.secondary{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;background:none;font-size:12px;padding:15px 5px 0}.secondary svg{width:16px;height:16px}.card .micro{margin:10px 0 0;min-height:12px;font-size:10px}#share-copy{width:100%;margin-top:10px;font-size:12px;padding:8px}#pause-screen .card{padding:35px}.pause{position:absolute;right:27px;top:95px;z-index:5;background:#fff9e799;width:32px;height:32px}.pause svg{width:15px}.playing .game{height:calc(100svh - 203px);min-height:360px;max-height:750px}.playing .intro{display:none}.playing main{padding-top:12px}.playing .jump-label{font-size:12px}.playing footer{padding-top:14px}.playing .game-top{top:24px}#effects{position:absolute;inset:0;pointer-events:none;z-index:12;overflow:hidden}.heart-pop{position:absolute;bottom:42px;font-size:23px;color:#d57f8c;animation:heart-rise 1s ease-out forwards;filter:drop-shadow(0 2px 0 #fff8e9)}@keyframes heart-rise{0%{transform:translate(0,0) scale(.6);opacity:0}15%{opacity:1}100%{transform:translate(var(--drift),-125px) rotate(var(--turn)) scale(1.15);opacity:0}}dialog{border:1px solid #dedec9;border-radius:24px;padding:35px;max-width:430px;width:calc(100% - 32px);color:var(--ink);background:#fffbee;box-shadow:0 20px 80px #3f4a3033}dialog::backdrop{background:#3d492c50;backdrop-filter:blur(5px)}dialog p{font-size:13px;line-height:1.75;color:#7a806d}.close{position:absolute;right:15px;top:15px;width:28px;height:28px;font-size:21px}.how{display:flex;flex-wrap:wrap;gap:10px;padding:12px 0}.how span{font-size:11px}.how b{display:inline-block;padding:5px;border:1px solid #d8ddca;border-radius:5px;margin-right:5px}.hint{font-size:11px!important}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid #e3e3d2;font-size:13px}input[type=checkbox]{accent-color:var(--green);width:19px;height:19px}.about-links{display:flex;flex-direction:column;gap:14px;font-size:12px;margin-top:24px}.about-links a:hover{text-decoration:underline}.privacy{font-size:10px!important;margin:22px 0 0}#toast{position:fixed;z-index:30;bottom:30px;left:50%;transform:translateX(-50%);background:#4d633b;color:#fffbee;font-size:12px;padding:12px 20px;border-radius:30px;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}[hidden]{display:none!important}.gentle *, .gentle *::before{animation:none!important;scroll-behavior:auto!important}.gentle .heart-pop{opacity:.6;transition:opacity .5s}.gentle button:hover{transform:none}@media(max-width:760px){.app{padding:0 5%}header{height:83px}.edition{display:none}.intro{margin:18px 0 25px}.eyebrow{font-size:8px;letter-spacing:1.7px}h1{font-size:40px;letter-spacing:-2px}.tagline{font-size:11px;max-width:280px;margin:12px auto;line-height:1.6}.game{height:510px;border-radius:20px}.game-top{top:19px;left:20px;right:20px}.jump-label{font-size:8px;max-width:165px;letter-spacing:.3px}.label{font-size:8px;letter-spacing:1px}.best-group .label{max-width:65px;line-height:1.5}.score-group strong{font-size:29px}.best-group strong{font-size:23px}.welcome{left:0;top:19%;width:100%}.welcome h2{font-size:24px;max-width:none;margin:17px auto 7px}.welcome p{font-size:11px;margin:7px 0 14px}.welcome .primary{padding:13px 20px;min-height:43px}.welcome .micro{display:none}.controls{height:83px}.move{gap:10px}.keycap{padding:5px;font-size:14px}.keycap span{display:none}.control-copy b{font-size:11px}.control-copy small{font-size:9px}.hearts{font-size:10px;letter-spacing:0}.under-game{font-size:9px;flex-wrap:wrap;line-height:1.6;margin:18px 0}.desktop-tip{display:none}footer{font-size:9px;gap:10px;padding:15px 0 22px}.wordmark{font-size:26px}.wordmark>svg{width:30px}.header-right{gap:8px}.icon-button{width:35px;height:35px}.playing .game{height:calc(100svh - 172px);min-height:350px;max-height:none}.playing main{padding-top:0}.overlay{bottom:83px}.card{padding:22px 25px;width:310px}.card h2{font-size:26px}.result-score{font-size:54px}.playing .jump-label{font-size:10px}.pause{top:91px;right:19px;width:29px;height:29px}}@media(max-width:380px){.app{padding:0 12px}h1{font-size:35px}.tagline{font-size:10px}.game{height:490px}.control-copy b{font-size:10px}.move{gap:8px}.keycap{display:none}.jump-label{max-width:130px;font-size:7px}.under-game{font-size:8px}.text-button{font-size:9px}footer{font-size:8px}.playing .game{min-height:330px}}@media(max-height:600px) and (min-width:480px){header{height:60px}.intro{margin:4px 0 14px}.intro h1{font-size:34px;margin:7px 0}.intro .eyebrow,.tagline{display:none}.game{height:310px}.welcome{top:17%;left:47%;width:50%}.welcome h2{font-size:24px;margin:14px auto 8px}.welcome p{font-size:10px;margin:6px auto 10px}.welcome .primary{padding:10px 20px;min-height:40px}.micro{display:none}.controls{height:64px}.overlay{bottom:64px}.playing .game{height:calc(100svh - 105px);min-height:260px}.playing .under-game{margin:10px 0}.playing footer{display:none}.card{padding:14px 25px;max-width:350px}.result-score{font-size:35px;margin:7px}.card h2{font-size:23px;margin:6px}.card p{margin:6px}.card .primary{padding:10px;min-height:40px}.secondary{padding-top:9px}.under-game{margin:12px 0}footer{padding:10px}dialog{max-height:calc(100svh - 24px);overflow:auto}}@media(prefers-reduced-motion:reduce){.controls.teaching .keycap{animation:none}.heart-pop{animation-duration:.2s}}

@media(max-height:600px) and (min-width:480px){.game .controls{height:64px}.playing .game{min-height:215px}.playing header{height:52px}.playing .under-game{margin:8px 0}.playing .game-top{top:12px}.playing .pause{top:60px}.playing .card{padding:12px 20px}.playing .card .eyebrow{font-size:8px}.playing .card .micro{display:none}.playing .result-score{font-size:32px;margin:5px}.playing .card h2{font-size:22px}.playing .card p{font-size:10px}.playing .secondary{padding-top:7px}.welcome h2{font-size:22px}.welcome .pill{font-size:7px}.welcome p{font-size:10px}.keycap span{display:none}}
@media(max-height:600px) and (min-width:480px){#pause-screen .card{padding:18px 25px}#result{bottom:0}#result .card{padding:10px 25px}#result .card .micro{display:none}#result .card p{margin:5px 0}#result .result-score{font-size:28px;margin:4px}#result .card h2{font-size:21px;margin:5px 0}#result .primary{min-height:36px;padding:8px 15px}}

.move{touch-action:none}
.heart-pop{animation-duration:.68s}
.playing .jump-label{font-weight:700;letter-spacing:.3px;box-shadow:0 2px 0 #9caf7b20}
.playing .jump-label[data-distance="1"]{background:#e9f1d3;border-color:#b7ca94;color:#506a37}
.playing .jump-label[data-distance="2"]{background:#fff0cc;border-color:#dfc489;color:#816027}
.playing .jump-label[data-distance="3"]{background:#f2e6f6;border-color:#c9acd5;color:#79538b}


@media(max-height:600px) and (min-width:480px){.playing main{padding-top:0}.playing .game{height:calc(100svh - 86px)}}
.playing .jump-label[data-distance="reveal"]{background:#e7f4ef;border-color:#9fc7ba;color:#3f7768}
