.hero-puzzle-grid{display:grid;grid-template-columns:repeat(var(--puzzle-size),minmax(0,1fr));width:100%;max-width:480px;margin:18px auto;border:3px solid #35443e;border-radius:14px;overflow:hidden;background:#35443e;gap:0}.hero-puzzle-grid .puzzle-cell{padding:0;aspect-ratio:1;min-width:0;min-height:0;border:1px solid #52645b;border-radius:0;position:relative;display:flex;align-items:center;justify-content:center;box-shadow:none;color:#173d32;opacity:1;-webkit-text-fill-color:#173d32}.puzzle-cell small{position:absolute;top:2px;left:4px;font-size:10px;line-height:1;opacity:.6}.puzzle-cell svg{width:80%;height:80%;pointer-events:none;border-radius:8px}.puzzle-cross{font-size:clamp(24px,6vw,44px);font-weight:900;color:#243c35;text-shadow:0 1px #fff}.puzzle-tools{display:flex;gap:8px}.puzzle-tools button{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;padding:10px 6px;font-size:14px;background:#fff;color:#173d32;border:2px solid #95a78b}.puzzle-tools svg{width:28px;height:28px}.puzzle-tools button[aria-pressed=true]{background:#ffe6a6;border-color:#825b22;box-shadow:0 0 0 2px #825b22}.puzzle-status{display:flex;justify-content:space-between;margin:16px 0;font-weight:700}.puzzle-note{background:#fff7df;border-radius:12px;padding:14px;line-height:1.5}.puzzle-help{margin:12px 0}.puzzle-help summary{padding:12px;background:#fff;border-radius:12px;font-weight:700}.puzzle-bottom{display:flex;flex-wrap:wrap;gap:10px}.puzzle-bottom button,.puzzle-bottom a{flex:1;min-width:120px}.puzzle-check{flex-basis:100%!important}.puzzle-cell.puzzle-conflict{box-shadow:inset 0 0 0 4px #a62d39}.puzzle-cell.puzzle-hint{box-shadow:inset 0 0 0 4px #654719}.puzzle-cell:focus-visible{outline:3px solid #172e28;outline-offset:-5px}.puzzle-rules{background:#fff;border-radius:16px;padding:12px 16px}.puzzle-rules p{margin:8px 0}

.hero-puzzle-grid{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.puzzle-gesture-guide{font-size:.95rem;line-height:1.6;background:#fff;border-radius:12px;padding:10px 12px}.puzzle-cell svg,.puzzle-cell small,.puzzle-cell span{pointer-events:none}
