@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');
:root{--green:#203d36;--mint:#dde9cf;--cream:#f7f5ec;--ink:#263e36}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:15px 'DM Sans',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:1px solid #d7dfcf;background:transparent;color:var(--ink);border-radius:12px;padding:12px 17px;font-weight:600}button:hover{background:#e8eddf}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #c58c43;outline-offset:4px}header{max-width:1320px;margin:auto;padding:28px 45px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dde0d3}.brand{text-decoration:none;font:700 29px Outfit,sans-serif;color:var(--green);display:flex;align-items:center;gap:10px}.paw{font-size:38px;color:#72905d}.by{font:700 9px 'DM Sans',sans-serif;letter-spacing:2px;border-left:1px solid #bac4b3;padding-left:15px;margin-left:7px}header button{border:0;font-size:13px}main{display:grid;grid-template-columns:340px minmax(0,700px);gap:70px;max-width:1200px;margin:45px auto 55px;padding:0 25px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#72856a}.intro{padding:22px 0}h1{font:600 68px/.98 Outfit,sans-serif;letter-spacing:-3px;margin:23px 0}h1 em{font-style:normal;color:#79945f}.intro>p{line-height:1.8;color:#6f7868;font-size:14px}.portrait{position:relative;margin-top:28px;width:270px;height:235px;transform:rotate(-3deg);border-radius:100px 100px 14px 14px;overflow:hidden;background:#c5c9af;border:6px solid white;box-shadow:0 7px 20px #233e3612}.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}.portrait span{position:absolute;bottom:0;left:0;right:0;text-align:center;background:#203d36d9;color:#fff;padding:10px 4px;font-size:11px}.tip{border-top:1px solid #d8decd;padding-top:20px;margin-top:30px;max-width:285px}.tip b{font:600 18px Outfit}.tip p{font-size:13px;line-height:1.7;color:#6f7868}.intro small{font-size:10px;color:#88907c}.game{background:#fffef8;border:1px solid #e1e5d6;border-radius:26px;padding:27px;box-shadow:0 20px 55px #203d3609}.game-top{display:flex;align-items:center;justify-content:space-between;gap:10px}h2{font:500 24px Outfit,sans-serif;margin:8px 0}.game-top button{font-size:11px;padding:11px 13px}.game-top button span{display:block;font:600 15px Outfit;margin-top:3px}.stats{display:flex;justify-content:space-between;margin-top:23px;font-size:11px;color:#7b8871}.progress{height:5px;background:#e9ecdf;border-radius:5px;margin:10px 0 5px;overflow:hidden}.progress div{height:100%;background:#86a36c;transition:width .25s}.board-wrap{position:relative;background:#f0f2e5;border-radius:19px;margin-top:16px;overflow:hidden;background-image:radial-gradient(#dce2ce 1px,transparent 1px);background-size:17px 17px}canvas{display:block;width:100%;aspect-ratio:720/650;touch-action:none;outline:0}.deco{position:absolute;color:#c5cfb3;font-size:32px;pointer-events:none}.d1{top:25px;right:28px}.d2{bottom:25px;left:25px}#message{font-size:12px;text-align:center;min-height:30px;margin:15px 0 5px;color:#688155}.actions{display:flex;justify-content:center;gap:9px}.actions button{font-size:12px;padding:11px 16px;background:#f7f8ef}.actions button:last-child{background:#e5ecd9;border-color:#d1ddc2}.bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e5e8da;margin-top:21px;padding-top:15px}.bottom span{font-size:10px;line-height:1.8;color:#8a927e}.bottom b{font-weight:400}.dpad{display:grid;grid-template-columns:repeat(3,34px);gap:4px}.dpad button{padding:4px;border-radius:7px;height:30px}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1}footer{max-width:1230px;padding:22px 25px;margin:auto;border-top:1px solid #dce1d1;font:600 14px Outfit;display:flex;gap:25px}footer span{font:11px 'DM Sans';color:#859078}footer span:last-child{margin-left:auto}dialog{border:1px solid #d1dcc6;border-radius:22px;padding:27px;color:var(--green);max-width:490px;width:90%;box-shadow:0 25px 100px #203d3644}dialog::backdrop{background:#18362bc4;backdrop-filter:blur(5px)}dialog p{font-size:14px;line-height:1.8}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head button{border:0}#levelGrid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:22px 0}#levelGrid button{padding:13px 3px}#levelGrid button.done{background:#dbe8ca}#levelGrid button.active{background:var(--green);color:white}dialog small{font-size:11px;color:#718262}#play,#next{background:var(--green);color:white;width:100%}#overlay{position:absolute;inset:0;background:#f0f2e5ed;align-items:center;justify-content:center;padding:28px}#overlay:not([hidden]){display:flex}.win{text-align:center;max-width:300px}.win>span{font-size:55px;color:#b58a42}.win h2{font-size:32px}.win p{line-height:1.7;font-size:14px}.win button{margin-top:10px}#replay{border:0;font-size:12px}@media(min-width:1400px){main{margin-top:65px}}@media(max-width:900px){main{gap:30px;grid-template-columns:260px minmax(0,1fr)}h1{font-size:56px}.portrait{width:225px;height:220px}.game{padding:18px}.game-top h2{font-size:20px}}@media(max-width:650px){header{padding:15px 20px}.brand{font-size:23px}.by{display:none}header button{font-size:11px;padding:8px}main{display:flex;flex-direction:column;margin:15px auto 25px;padding:0 14px;gap:17px}.intro{padding:7px 4px;position:relative;min-height:95px}.intro .eyebrow{font-size:8px;letter-spacing:1px}h1{font-size:37px;letter-spacing:-1.5px;line-height:1;margin:10px 0}h1 br{display:none}.intro>p{font-size:11px;line-height:1.5;margin:0;max-width:65%}.portrait{position:absolute;right:0;top:13px;width:90px;height:95px;margin:0;border-width:3px}.portrait span,.tip,.intro small{display:none}.game{border-radius:19px;padding:17px}.game-top h2{font-size:20px}.game-top .eyebrow{font-size:8px}.stats{margin-top:15px}.board-wrap{margin-top:12px}canvas{max-height:48vh}.bottom{margin-top:15px;padding-top:10px}footer{padding:18px;font-size:12px}footer span{font-size:10px}footer span:last-child{display:none}.actions button{padding:10px 13px}}
