.maze-player{background:#fffdf4;border:3px solid white;border-radius:26px;padding:16px;box-shadow:var(--shadow)}.maze-heading{display:flex;align-items:center;gap:16px;margin-bottom:12px}.maze-heading h1{margin:3px 0;font-size:25px}.maze-heading small{color:#71836c}.maze-badge{margin-left:auto;padding:10px 16px;background:#f6edcd;border-radius:30px}.maze-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px;align-items:center}.maze-stage{min-width:0;display:flex;justify-content:center;padding:8px}.maze-board{display:block;width:min(100%,calc(100dvh - 205px));min-width:240px;aspect-ratio:1;overflow:visible;border-radius:20px;box-shadow:0 8px 0 #d4dcbc;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}.maze-board:active{cursor:grabbing}.maze-board:focus-visible{outline:3px solid #d4aa58;outline-offset:6px}.maze-monkey{pointer-events:none}.maze-controls{text-align:center}.maze-guide>span{font-size:44px}.maze-guide h2{font-size:20px;margin:8px 0}.maze-guide p,.maze-note{color:#6c806b;font-size:14px;line-height:1.7}.maze-controls #mazeMessage{font-size:14px;line-height:1.5;min-height:44px}.maze-pad{display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(2,50px);gap:8px;justify-content:center;margin:12px 0 20px}.maze-pad button{background:#e5edd8;box-shadow:0 4px 0 #c9d6b8;border-radius:15px;font-size:28px;font-weight:bold;min-height:48px}.maze-pad button:active{transform:translateY(2px);box-shadow:none}.maze-pad [data-move=up]{grid-column:2}.maze-pad [data-move=left]{grid-column:1;grid-row:2}.maze-pad [data-move=down]{grid-column:2;grid-row:2}.maze-pad [data-move=right]{grid-column:3;grid-row:2}.maze-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.maze-actions .capsule{padding:0 15px;font-size:14px}.maze-victory>span{font-size:65px}.maze-victory button{display:block;margin:15px auto}.maze-note{font-size:12px}body:has(.maze-player) .topbar{padding:8px 16px}main:has(.maze-player){max-width:1260px;padding-bottom:12px}
@media(max-width:700px) and (orientation:portrait){.maze-layout{grid-template-columns:1fr;gap:12px}.maze-heading{gap:10px}.maze-heading h1{font-size:20px}.maze-heading .capsule{padding:0 15px;min-height:44px}.maze-badge{display:none}.maze-player{padding:10px}.maze-board{width:100%;min-width:0;max-width:520px}.maze-guide{display:none}.maze-controls #mazeMessage{min-height:21px;margin:4px 0}.maze-pad{margin:10px 0 16px}.maze-note{margin-bottom:0}}
@media(orientation:landscape) and (max-height:600px){body:has(.maze-player) .topbar{display:none}.maze-player{padding:8px}.maze-heading{margin-bottom:2px;gap:10px}.maze-heading h1{font-size:18px}.maze-heading .capsule{min-height:40px}.maze-heading small{font-size:11px}.maze-layout{grid-template-columns:minmax(0,1fr) 220px;gap:10px}.maze-board{width:min(100%,calc(100dvh - 100px));min-width:0}.maze-guide{display:none}.maze-pad{grid-template-columns:repeat(3,48px);grid-template-rows:repeat(2,44px);margin:6px 0 12px}.maze-pad button{min-height:44px}.maze-controls #mazeMessage{margin:2px 0;min-height:40px;font-size:12px}.maze-actions .capsule{min-height:42px;padding:0 11px}.maze-note{margin:8px 0 0}.maze-badge{font-size:13px}.maze-victory>span{font-size:40px}.maze-victory h2{font-size:20px}}
dialog.maze-result{max-height:calc(100dvh - 24px);overflow:auto}.maze-result #mazeNext{min-width:210px}.maze-result .maze-rating{font-size:14px}.maze-result .game-actions{gap:10px;margin-top:12px}@media(orientation:landscape) and (max-height:500px){dialog.maze-result{padding:14px 20px}.maze-result .score-stars{font-size:40px}.maze-result h2{font-size:23px}.maze-result p{margin:7px 0}.maze-result .capsule{min-height:44px}}

/* Cover-free level selection: numbers, difficulty groups and earned stars. */
.maze-selection{max-width:1020px;margin:12px auto 0}.maze-selection-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:8px 4px 20px}.maze-selection-header h1{font-size:clamp(30px,5vw,44px);margin:0 0 8px}.maze-selection-header p{color:#6b806b;margin:0;font-size:16px}.maze-selection-progress{text-align:right;flex-shrink:0}.maze-selection-progress strong{display:block;font-size:28px;font-variant-numeric:tabular-nums}.maze-selection-progress strong span{font-size:14px;font-weight:500;color:#6b806b}.maze-selection-progress small{display:block;color:#6b806b;margin-top:4px}.maze-selection-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:30px}.maze-level-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 28px}.maze-level-group>header{display:flex;align-items:baseline;gap:12px;margin:0 4px 10px;flex-wrap:wrap}.maze-level-group h2{font-size:19px;margin:0}.maze-level-group>header p{font-size:13px;color:#6b806b;margin:0}.maze-levels{display:grid;gap:10px}.maze-level{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px;background:#fffdf5;border:1px solid #dde4d2;border-radius:20px;text-align:left;box-shadow:0 4px 0 #dfe5d144;min-height:100px;transition:background .15s,transform .15s}.maze-level:hover{background:#fff8df;transform:translateY(-2px)}.maze-level:focus-visible{outline:3px solid #d9a03e;outline-offset:3px}.maze-level-next{border:2px solid #d7ad53;background:#fff9e8}.maze-level-number{font-size:30px;font-weight:850;font-variant-numeric:tabular-nums;color:#587251}.maze-level-copy strong{display:block;font-size:17px;line-height:1.4}.maze-level-state{display:block;margin-top:5px;font-size:12px;color:#75836a}.maze-level-stars{white-space:nowrap;font-size:20px;letter-spacing:1px;color:#dddccc}.maze-level-stars .earned{color:#d99a26}.maze-selection-footer{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:28px}.maze-selection-footer p{font-size:13px;color:#6b806b;margin:0}
@media(max-width:700px){.maze-selection{margin-top:4px}.maze-selection-header{gap:12px}.maze-selection-header p{font-size:14px}.maze-selection-progress strong{font-size:24px}.maze-selection-progress small{font-size:11px}.maze-selection-actions{gap:8px;margin-bottom:24px}.maze-selection-actions .capsule{padding:0 15px;font-size:14px}.maze-level-groups{grid-template-columns:1fr;gap:24px}.maze-level{min-height:88px;padding:15px;gap:12px;grid-template-columns:42px minmax(0,1fr) auto}.maze-level-number{font-size:27px}.maze-level-copy strong{font-size:16px}.maze-level-stars{font-size:19px}.maze-selection-footer{gap:12px}}
