:root{--ink:#18352f;--muted:#70827d;--cream:#f7f2e9;--paper:#fffdf8;--orange:#ee765c;--orange-dark:#d85d47;--sage:#d8e6dd;--line:#dde4de;--shadow:0 25px 70px rgba(36,67,56,.14)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;overflow-x:hidden}.grain{position:fixed;inset:0;opacity:.32;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E")}.shell{width:min(100% - 32px,720px);margin:auto;padding:28px 0 24px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding:0 6px}.brand{display:flex;gap:11px;align-items:center;color:var(--ink);font:800 14px/1 Manrope,sans-serif;letter-spacing:.19em;text-decoration:none}.brand-mark{width:25px;height:25px;position:relative;display:grid;place-items:center}.brand-mark i{width:4px;height:16px;border-radius:4px;background:var(--orange);position:absolute;transform:rotate(45deg)}.brand-mark i:nth-child(2){transform:rotate(45deg) translate(6px,-6px);opacity:.65}.brand-mark i:nth-child(3){transform:rotate(45deg) translate(-6px,6px);opacity:.35}.top-actions{display:flex;gap:10px}.round-btn{width:42px;height:42px;border:1px solid #d8ddd6;border-radius:50%;background:rgba(255,253,248,.6);color:var(--ink);display:grid;place-items:center;font:bold 17px Manrope;cursor:pointer;transition:.2s}.round-btn:hover{background:white;transform:translateY(-2px)}.round-btn svg{width:18px;fill:currentColor}.game-card{background:rgba(255,253,248,.92);border:1px solid rgba(255,255,255,.9);border-radius:34px;padding:34px 38px 27px;box-shadow:var(--shadow);backdrop-filter:blur(12px)}.game-head{display:flex;justify-content:space-between;align-items:flex-start}.eyebrow{margin:0 0 9px;color:var(--orange);font-size:10px;font-weight:800;letter-spacing:.22em}.game-head h1,.modal h2{margin:0;font:800 29px/1.1 Manrope,sans-serif;letter-spacing:-.04em}.level-badge{text-align:right;display:grid;gap:2px}.level-badge span,.stat span{font-size:9px;font-weight:700;letter-spacing:.16em;color:#96a29d;text-transform:uppercase}.level-badge strong{font:800 24px Manrope;color:var(--orange)}.stats{display:grid;grid-template-columns:1fr 1fr 1fr;margin:25px 0 22px;border:1px solid var(--line);border-radius:13px;padding:11px 0}.stat{display:grid;place-items:center;gap:3px}.stat-center{border-left:1px solid var(--line);border-right:1px solid var(--line)}.stat strong{font:700 15px Manrope}.hearts strong{font-size:10px;letter-spacing:3px;color:var(--orange)}.board-wrap{position:relative;width:min(100%,480px);margin:auto;aspect-ratio:1;display:grid;place-items:center}.board-glow{position:absolute;inset:5%;border-radius:40%;background:#dcebe3;filter:blur(45px);opacity:.7}.board{--size:5;position:relative;z-index:1;width:88%;height:88%;display:grid;grid-template-columns:repeat(var(--size),1fr);grid-template-rows:repeat(var(--size),1fr);gap:8px;padding:12px;border-radius:25px;background:rgba(225,235,227,.55);border:1px solid rgba(195,212,202,.55);box-shadow:inset 0 2px 15px rgba(54,81,69,.05)}.tile{border:0;border-radius:14px;background:var(--paper);box-shadow:0 4px 12px rgba(50,74,65,.1);display:grid;place-items:center;color:var(--ink);cursor:pointer;transition:transform .18s,background .18s,box-shadow .18s,opacity .35s;font:700 clamp(19px,5vw,27px) Manrope}.tile:hover{transform:translateY(-2px);box-shadow:0 8px 17px rgba(50,74,65,.15);color:var(--orange)}.tile:active{transform:scale(.94)}.tile.blocked{animation:shake .35s;background:#fff0ea;color:var(--orange)}.tile.hint{animation:pulse 1s infinite;background:#fff3df;color:var(--orange);box-shadow:0 0 0 5px rgba(238,118,92,.12)}.tile.exit-up{animation:exitUp .45s ease-in forwards}.tile.exit-down{animation:exitDown .45s ease-in forwards}.tile.exit-left{animation:exitLeft .45s ease-in forwards}.tile.exit-right{animation:exitRight .45s ease-in forwards}.empty{visibility:hidden}.instruction{text-align:center;color:var(--muted);font-size:12px;margin:17px 0 19px}.instruction span{color:var(--ink);font-weight:700}.controls{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:11px}.controls button{height:49px;border-radius:14px;font:700 12px DM Sans;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;transition:.2s}.controls svg{width:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.control-btn{background:transparent;border:1px solid var(--line);color:var(--muted)}.control-btn:hover:not(:disabled){border-color:#a9bab2;color:var(--ink);background:white}.control-btn:disabled{opacity:.35;cursor:not-allowed}.primary-btn{background:var(--orange);color:white;border:0;box-shadow:0 8px 18px rgba(238,118,92,.25)}.primary-btn:hover{background:var(--orange-dark);transform:translateY(-2px)}.primary-btn span{background:rgba(255,255,255,.22);border-radius:8px;padding:2px 6px;font-size:10px}footer{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:18px;color:#95a09b;font-size:10px;letter-spacing:.12em;text-transform:uppercase}footer .line{width:30px;height:1px;background:#c7cec8}.message{position:absolute;z-index:3;bottom:7%;left:50%;transform:translate(-50%,10px);background:var(--ink);color:white;border-radius:20px;padding:8px 14px;font-size:11px;opacity:0;transition:.25s;white-space:nowrap}.message.show{opacity:1;transform:translate(-50%,0)}.modal{position:fixed;z-index:10;inset:0;background:rgba(21,43,37,.35);backdrop-filter:blur(9px);display:grid;place-items:center;padding:20px;opacity:0;pointer-events:none;transition:.25s}.modal.open{opacity:1;pointer-events:auto}.modal-card{width:min(100%,400px);background:var(--paper);padding:38px;border-radius:28px;box-shadow:var(--shadow);position:relative;text-align:left;transform:translateY(15px);transition:.3s}.modal.open .modal-card{transform:none}.modal-card>p:not(.eyebrow){color:var(--muted);font-size:13px;line-height:1.7}.modal-close{position:absolute;right:18px;top:14px;border:0;background:none;color:#8b9994;font-size:26px;cursor:pointer}.mini-mark{width:48px;height:48px;display:grid;place-items:center;background:#e4eee8;border-radius:15px;color:var(--orange);font-size:22px;margin-bottom:20px}.how-row{display:grid;grid-template-columns:30px 1fr;gap:11px;padding:12px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted);line-height:1.5}.how-row b{color:var(--orange);font-size:10px;letter-spacing:.12em}.got-it{width:100%;height:50px;margin-top:18px;background:var(--ink);color:white;border:0;border-radius:14px;font-weight:700;cursor:pointer}.win-card{text-align:center}.confetti{font-size:44px;color:var(--orange);margin-bottom:10px;animation:pulse 1.5s infinite}.win-card .got-it{background:var(--orange)}
@keyframes shake{25%{transform:translateX(-5px)}50%{transform:translateX(5px)}75%{transform:translateX(-3px)}}@keyframes pulse{50%{transform:scale(1.06)}}@keyframes exitUp{to{transform:translateY(-140px);opacity:0}}@keyframes exitDown{to{transform:translateY(140px);opacity:0}}@keyframes exitLeft{to{transform:translateX(-140px);opacity:0}}@keyframes exitRight{to{transform:translateX(140px);opacity:0}}
@media(max-width:560px){.shell{width:min(100% - 20px,720px);padding-top:18px}.topbar{margin-bottom:15px}.game-card{padding:25px 18px 21px;border-radius:27px}.game-head h1{font-size:25px}.stats{margin:19px 0 12px}.board{gap:6px;padding:9px;border-radius:20px}.tile{border-radius:11px}.instruction{margin-top:10px}.controls{gap:7px}.controls button{height:46px}.top-actions .sound-btn{display:none}}@media(max-height:760px) and (min-width:500px){.shell{padding-top:15px}.game-card{padding-top:25px}.board-wrap{width:400px}.stats{margin:15px 0 8px}.instruction{margin:8px 0 12px}}
.board{display:block!important;grid-template-columns:none!important;grid-template-rows:none!important;gap:0!important;width:92%;height:92%;padding:12px}.board svg{width:100%;height:100%;overflow:visible}.maze-grid{opacity:.12;stroke:#789187;stroke-width:.025}.snake{cursor:pointer;color:var(--ink);transform-origin:center;transition:color .2s,opacity .35s}.snake:hover,.snake:focus{color:var(--orange);outline:none}.snake-line{fill:none;stroke:currentColor;stroke-width:.14;stroke-linecap:square;stroke-linejoin:round;vector-effect:non-scaling-stroke}.snake-hit{fill:none;stroke:transparent;stroke-width:.7;stroke-linecap:round;stroke-linejoin:round}.snake-head{fill:currentColor}.snake.blocked{color:var(--orange);animation:shake .35s}.snake.hint{color:var(--orange);filter:drop-shadow(0 0 .2px var(--orange));animation:pulse 1s infinite}.snake.escaping{color:var(--orange);animation:snakeExit .46s ease-in forwards}@keyframes snakeExit{70%{opacity:.3;transform:translate(4%,-4%)}to{opacity:0;transform:translate(10%,-10%)}}
